【发布时间】:2010-07-22 19:19:47
【问题描述】:
当用户在 ASP.NET MVC 项目中使用会员服务的默认实现登录时,他们会使用登录时使用的任何大小写的用户名登录。
例如,我创建了一个名为 John 的用户。如果我随后以 joHN 身份登录,则 User.Identity.Name 将等于 joHN。我希望它等于实际用户的登录名 John。
目前我的情况是这样的:
var membershipUser = Membership.GetUser(model.UserName);
var membershipUserName = Membership.GetUserNameByEmail(membershipUser .Email);
FormsService.SignIn(membershipUserName, model.RememberMe);
代替默认实现:
FormsService.SignIn(model.UserName, model.RememberMe);
好像有点绕。有没有更好的方法来做到这一点?
【问题讨论】:
-
以用户输入的方式显示登录名有什么问题?
-
用户名稍后在区分大小写的系统中使用。所以当它看到 joHN 时,并没有意识到它和 John 是同一个用户。
标签: asp.net-mvc asp.net-membership