【问题标题】:How can I override the Identity with a custom MembershipProvider?如何使用自定义 MembershipProvider 覆盖身份?
【发布时间】:2014-04-04 11:30:22
【问题描述】:

所以我在使用 FormsAuthentication 的 ASP.NET MVC4 应用程序中编写了一个自定义 MembershipProvider。提供商允许用户通过电话号码、电子邮件和用户名登录。问题是我希望将HttpContext.Current.User.Identity.Name 设置为用户名,即使用户通过电话号码或电子邮件登录。它不是。

我已经尝试在 MembershipProvider 中覆盖 MembershipUser GetUser(string, bool) 以返回一个 MembershipUser-object 并将 Name 设置为所有三种情况下的用户名,但这似乎并不重要。身份名称仍设置为用户作为登录凭据输入的任何内容。

有什么方法可以实现我想要的吗?

【问题讨论】:

  • 请添加您的登录操作源

标签: c# asp.net-mvc-4 forms-authentication


【解决方案1】:

HttpContext.Current.User.Identity.Name 设置为存储在表单身份验证 cookie 中的用户名。

创建表单身份验证 cookie 的代码(通常在处理登录的控制器的 POST 操作中调用 FormsAuthentication.SetAuthCookieFormsAuthentication.RedirectFromLoginPage)应提供您要使用的用户名,无论用户是否拥有提供了电话号码、电子邮件或用户名。

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多