ASP.Net Core 3 IdentityErrorDescriber 是一个用于自定义 Identity 错误消息的类。要使用 IdentityErrorDescriber,可以按照以下步骤进行操作:
public class CustomIdentityErrorDescriber : IdentityErrorDescriber
{
public override IdentityError DefaultError()
{
return new IdentityError { Code = nameof(DefaultError), Description = "An unknown error occurred." };
}
public override IdentityError ConcurrencyFailure()
{
return new IdentityError { Code = nameof(ConcurrencyFailure), Description = "Optimistic concurrency failure, object has been modified." };
}
// 添加其他自定义错误消息的方法
}
services.AddDefaultIdentity(options =>
{
options.User.RequireUniqueEmail = true;
options.SignIn.RequireConfirmedAccount = true;
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireUppercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequiredLength = 6;
})
.AddErrorDescriber() // 注册自定义的 IdentityErrorDescriber
.AddEntityFrameworkStores();
var user = new ApplicationUser { UserName = "username", Email = "email@example.com" };
var result = await _userManager.CreateAsync(user, "password");
if (result.Succeeded)
{
// 用户创建成功
}
else
{
foreach (var error in result.Errors)
{
Console.WriteLine(error.Description);
}
}
以上代码将根据自定义的 IdentityErrorDescriber 类返回的错误消息输出错误描述。根据自己的需求,可以在 CustomIdentityErrorDescriber 类中添加其他自定义的错误消息方法。