我正在使用新的ASP.NET身份(RTM),我想知道如何将注册和登录从用户名更改为电子邮件。
我的想法是让我的用户使用他们的电子邮件和密码(也可以使用外部登录来获取电子邮件)进行注册,并在顶部设置一个显示名称/用户名。
我看过IdentityUser,可以看到那里有UserName,但是因为它包装在ASP.Net Identity中,所以无法更改。
我知道我可以使用带有自定义验证程序的“ UserName”作为电子邮件,然后为ApplicationUser拥有一个名为DisplayName的额外属性,但这比解决方案更像是黑客。
希望我的问题清楚。提前致谢。
如果您确实要使用电子邮件地址登录,那么恕我直言,建议您使用的“ hack”是最好的方法。因为,如果您坚持“正确执行”,则至少
另一方面,如果您决定“入侵” UserName字段,则需要
确保在AccountController中使用的UserManager.UserValidator实例允许在电子邮件地址中使用特殊字符。为此,请确保其非默认构造函数如下所示:
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
var userValidator = UserManager.UserValidator as UserValidator<ApplicationUser>;
userValidator.AllowOnlyAlphanumericUserNames = false;
}
我希望这可以帮助您权衡两种方法的利弊,并提出最佳解决方案。祝好运!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句