asp.net标识中的用户名验证消息出现问题



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

配置Microsoft.AspNet.Identity以允许将电子邮件地址作为用户名

ASP.NET标识使用电子邮件而不是用户名

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

Name xxxxxxxxx@xxxx.com is already taken.

当用户尝试使用现有电子邮件地址注册时,会出现此消息。因此,我想给出一些错误消息,而不是这个错误消息,比如:

User with the given email address already exist.

那么,我如何在Asp.Net身份中做到这一点呢??

它只是替换消息。搜索"名称{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);
    }
}

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

相关内容

  • 没有找到相关文章

最新更新