所以我在使用FormsAuthentication的ASP.NET MVC4应用程序中编写了自定义MembershipProvider
。提供商允许用户通过电话号码,电子邮件和用户名登录。问题是我希望将HttpContext.Current.User.Identity.Name
设置为用户名,即使用户通过电话号码或电子邮件登录也是如此。它不是。
我已尝试在MembershipProvider中覆盖MembershipUser GetUser(string, bool)
以返回MembershipUser
- 对象,并在所有三种情况下将Name
设置为用户名,但它似乎并不是物。身份名称仍设置为用户输入的任何登录凭据。
任何达到我想要的方式?
答案 0 :(得分:1)
HttpContext.Current.User.Identity.Name
设置为存储在表单身份验证cookie中的用户名。
创建表单身份验证cookie的代码(通常是在处理登录的Controller的POST操作中调用FormsAuthentication.SetAuthCookie
或FormsAuthentication.RedirectFromLoginPage
)应提供您要使用的用户名,而不管用户是否提供了电话号码,电子邮件或用户名。