asp.net标识中的用户名validation消息问题
我在我的项目中使用新的会员系统asp.net身份。 我想使用电子邮件地址作为用户名,是的,我已经看过这些问题了:
配置Microsoft.AspNet.Identity以允许电子邮件地址作为用户名
ASP.NET标识使用电子邮件而不是用户名
我知道如何使用电子邮件作为用户名。但我有另一个问题,validation错误消息:
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,它只进行用户名/电子邮件检查,如果它没有失败,它会委托给默认的UserValidator,否则它会返回一个带有你想要的错误信息的IdentityResult。
- 在Identity 2.0中扩展IdentityUserRole
- InvalidOperationException:无法为“Role”创建DbSet,因为此类型未包含在上下文的模型中
- 使用自定义角色在ASP.NET标识中初始化RoleManager
- 使ASP.NET Identity 2.0电子邮件确认令牌适用于WCF和MVC
- Owin Authentication.SignIn不工作
- 使用带有IdentityFactory中间件的IOC容器
- ASP.NET Identity 2是否支持匿名用户?
- Microsoft ASP.NET标识 – 具有相同名称的多个用户
- Web API 2 + MVC 5共享标识表