我正在创建一个新的应用程序,并开始使用EF6-rc1、Microsoft.AspNet.Identity.Core 1.0.0-rc1、Microsoft.AspNet.Identity.EntityFramework 1.0.0-rc1、Microsoft.AspNet.Identity.Owin 1.0.0-rc1等,昨天发布了RTM版本,今天晚上我通过NuGet将它们更新为RTM。
除了对我到目前为止所做的工作做了几处代码更改之外,一切似乎都很顺利,直到我尝试为应用程序创建一个本地用户帐户。
我一直在处理用户名格式的电子邮件地址,它在发布候选版本中工作得很好,但现在使用用户名的电子邮件地址创建用户时,它抛出了以下验证错误:
用户名xxxxx@xxxx.com无效,只能包含字母或数字。
我花了一个小时左右的时间寻找解决方案或关于它的配置选项的文档,但一无所获。
有没有办法将其配置为允许用户名使用电子邮件地址?
发布于 2013-10-19 08:08:50
您可以通过在UserManager上插入您自己的UserValidator来实现此功能,或者只需在默认实现上将其关闭:
UserManager.UserValidator = new UserValidator<TUser>(UserManager) { AllowOnlyAlphanumericUserNames = false }
发布于 2014-03-14 21:33:20
它的C#版本(在App_Code\IdentityModels.cs中)是
public UserManager()
: base(new UserStore<ApplicationUser>(new ApplicationDbContext()))
{
UserValidator = new UserValidator<ApplicationUser>(this) { AllowOnlyAlphanumericUserNames = false };
}
发布于 2015-05-08 01:41:33
在我的例子中,使用ASP.NET Identity 2.0在VS 2013 C#,MVC5.2.2中运行,解决方案是更新App_Start\IdentityConfig.cs内部的ApplicationUserManager构造函数,如下所示:
public ApplicationUserManager(IUserStore<ApplicationUser> store)
: base(store)
{
this.UserValidator = new UserValidator<ApplicationUser>(this) { AllowOnlyAlphanumericUserNames = false };
}
https://stackoverflow.com/questions/19460078
复制相似问题