如何更改ASP.NET标识中的错误消息
我正在尝试更改标识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
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类执行三个基本验证,如果您自己进行验证,请记住:
另请参见我在这里发布了一个几乎相同的答案: