我正在使用新的ASP.NET身份(RTM),我想知道如何将注册和登录从用户名更改为电子邮件.
我的想法是,我希望我的用户使用他们的电子邮件和密码注册(也可以使用外部登录获取电子邮件),并在顶部设置显示名称/用户名.
我查看了IdentityUser,我可以看到UserName存在,但是因为它包含在ASP.Net Identity中,无法更改.
我知道我可以使用'UserName'作为电子邮件,使用自定义验证器,然后为ApplicationUser添加一个名为DisplayName的额外属性,但这更像是一个hack而不是解决方案.
我希望我的问题很明确.提前致谢.
我在我的项目中使用新的会员系统asp.net身份.我想使用电子邮件地址作为用户名,是的,我已经看过这些问题:
配置Microsoft.AspNet.Identity以允许电子邮件地址作为用户名
我知道如何使用电子邮件作为用户名.但我有另一个问题,验证错误消息:
Name xxxxxxxxx@xxxx.com is already taken.
当用户尝试使用现有的电子邮件地址注册时,会出现此消息.因此,我想提供错误消息,而不是此错误消息:
User with the given email address already exist.
那我怎么能在Asp.Net标识中做到这一点?
我想要做的只是在.NET MVC 6/vNext注册过程中允许使用字母数字字符,以及我见过的每个教程(即配置Microsoft.AspNet.Identity以允许电子邮件地址作为用户名)引用UserManager.UserValidator
,其中现在是在当前框架中不可用.
我已经看到了这一点:Microsoft.AspNet.Identity vnext中的UserValidator看起来与我的问题相同,但是他们UserNameValidationRegex
从那时起就将该属性从框架中删除了.辉煌.
services.AddIdentity<ApplicationUser, IdentityRole>(
o => {
o.Password.RequireDigit = false;
o.Password.RequireLowercase = false;
o.Password.RequireUppercase = false;
o.Password.RequireNonLetterOrDigit = false;
o.Password.RequiredLength = 2;
//o.User.AllowedUserNameCharacters here seems to be the only logical thing I can access
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Run Code Online (Sandbox Code Playgroud)
我发现了o.User.AllowedUserNameCharacters
,但是由于没有我在此发现的文档,我不知道我必须设置哪种格式?在那里的任何人都在同一条船上工作了吗?
提前致谢.
我正在使用 ASP.NET Core Identity 创建一个用户,如下所示:
User user = new User {
Email = "john@domain.com",
Name = "John"
};
await manager.CreateAsync(user, "JohnPass");
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息,指出用户名无效,因为它为空。
如何配置身份以使用电子邮件作为用户名?
或者我是否需要手动将用户名设置为与电子邮件相同?
我正在使用Asp.Net Webforms应用程序.我使用Microsoft.AspNet.Identity进行身份验证.我想用用户的电子邮件地址作为用户名.但它不会让.你能帮我吗?