使电子邮件作为用户名在ASP.NET核心身份
问题描述:
我使用ASP.NET核心身份如下创建用户:使电子邮件作为用户名在ASP.NET核心身份
User user = new User {
Email = "[email protected]",
Name = "John"
};
await manager.CreateAsync(user, "JohnPass");
我得到一个错误说的用户名是无效的,因为它是空的。
如何配置身份使用电子邮件作为用户名?
或者我需要手动设置用户名等于电子邮件?下面的代码
答
使用基于强制项目
User user = new User {
Id = id,// some auto generated id
Email = "[email protected]",
UserName = "[email protected]",// because you want to keep email id as UserName
DisplayName= "John"
};
await manager.CreateAsync(user, "JohnPass");
+0
使用此方法进行验证可能会让用户感到困惑。如果用户注册了一个已经存在的电子邮件,那么UserManager.CreateAsync中的错误信息会显示“用户名[email protected]'已被占用”,即使用户没有用户名的概念。 –
我认为最好的方法很简单,就是用户名设置为电子邮件,使用自定义UserValidator如下所示:http://stackoverflow.com/a/19460800/1166719 –