Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改ASP.NET标识中的错误消息_Asp.net_Identity_Asp.net Identity - Fatal编程技术网

如何更改ASP.NET标识中的错误消息

如何更改ASP.NET标识中的错误消息,asp.net,identity,asp.net-identity,Asp.net,Identity,Asp.net Identity,我正在尝试更改标识ASP.NET中的错误消息,但我不知道如何更改。 我想要更改错误消息-“已登录”。 CreateAsync方法返回此错误消息。Microsoft.AspNet.Identity.UserManager类有一个名为UserValidator的公共属性,类型为IIdentityValidator。UserManager的构造函数将该属性设置为Microsoft.AspNet.Identity.UserValidator的实例。调用CreateAsync时看到的错误消息来自嵌入在Mi

我正在尝试更改标识ASP.NET中的错误消息,但我不知道如何更改。 我想要更改错误消息-“已登录”。
CreateAsync方法返回此错误消息。

Microsoft.AspNet.Identity.UserManager类有一个名为
UserValidator
的公共属性,类型为
IIdentityValidator
。UserManager的构造函数将该属性设置为Microsoft.AspNet.Identity.UserValidator的实例。调用CreateAsync时看到的错误消息来自嵌入在Microsoft.AspNet.Identity.dll中的资源,并从UserValidator内部添加到IdentityResult中

private void AddErrors(IdentityResult result)
{
    foreach (var error in result.Errors)
    {
        if (error.StartsWith("Name"))
        {
            var NameToEmail= Regex.Replace(error,"Name","Email");
            ModelState.AddModelError("", NameToEmail);
        }
        else
        {
            ModelState.AddModelError("", error);
        }
    }
}
您可以提供自己的
IIdentityValidator
实现,它只是一个带有签名的方法:
taskvalidateSync(TUser项)
。您必须实现自己的验证,但您可以控制输出的消息。比如:

public class UserValidator : IIdentityValidator<ApplicationUser>
{
    public async Task<IdentityResult> ValidateAsync(ApplicationUser item)
    {
        if (string.IsNullOrWhiteSpace(item.UserName))
        {
            return IdentityResult.Failed("Really?!");
        }

        return IdentityResult.Success;
    }
}
公共类UserValidator:IIdentityValidator
{
公共异步任务ValidateAsync(应用程序用户项)
{
if(string.IsNullOrWhiteSpace(item.UserName))
{
返回IdentityResult.Failed(“真的?!”);
}
返回IdentityResult.Success;
}
}
默认UserValidator类执行三个基本验证,如果您自己进行验证,请记住:

  • 用户名不为null或空白
  • 用户名是字母数字
  • 用户名不是重复的

  • 另请参见我在这里发布了一个几乎相同的答案: