【问题标题】:Issue with username validation message in asp.net identityasp.net 身份中的用户名验证消息问题
【发布时间】:2013-12-25 11:36:43
【问题描述】:

我在我的项目中使用新的会员系统 asp.net 身份。我想使用电子邮件地址作为用户名,是的,我已经看过这些问题了:

Configure Microsoft.AspNet.Identity to allow email address as username

ASP.NET identity use email instead of user name

我知道如何使用电子邮件作为用户名。但我还有另一个问题,验证错误消息:

Name xxxxxxxxx@xxxx.com is already taken.

当用户尝试使用现有电子邮件地址注册时,会出现此消息。因此,我想提供类似以下的错误消息,而不是此错误消息:

User with the given email address already exist.

那么我怎样才能在 Asp.Net 身份中做到这一点??

【问题讨论】:

    标签: c# asp.net-mvc asp.net-membership asp.net-identity


    【解决方案1】:

    它只是替换消息。搜索“名称 {0} 已被占用”。并将其替换为您的消息“具有给定电子邮件地址的用户已存在”。

    您可以在 AddError 方法中执行此操作。 这是一个例子,你应该创建特定于应用程序的工作代码。

    private void AddErrors(IdentityResult result)
    {
        foreach (var error in result.Errors)
        {
            if (error.EndsWith("is already taken."))
                ModelState.AddModelError("", "User with the given email address already exists");
            else ModelState.AddModelError("", error);
        }
    }
    

    【讨论】:

    【解决方案2】:

    另一种选择是插入你自己的 UserValidator,它只检查用户名/电子邮件,如果它没有失败,它会委托给默认的 UserValidator,否则它会返回一个带有你想要的错误消息的 IdentityResult。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多