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

use*_*381 8 c# asp.net-mvc asp.net-membership asp.net-identity

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

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

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

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

Name xxxxxxxxx@xxxx.com is already taken.

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

User with the given email address already exist.

那我怎么能在Asp.Net标识中做到这一点?

jd4*_*d4u 11

它只是取代了消息.搜索"名称{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);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但不优雅.我相信ASP.NET身份团队正在研究真正的代码 - 来源:http://stackoverflow.com/a/19962202/687549 (3认同)