【问题标题】:ASP.NET MVC 3 Custom MembershipProvider and MembershipUserASP.NET MVC 3 自定义 MembershipProvider 和 MembershipUser
【发布时间】:2012-04-24 18:14:07
【问题描述】:

我在 ASP.NET MVC 3 上使用 EF 模型和自定义用户表(主要用于教育)做我的小项目。我阅读了教程,我知道我必须从 MembershipProvider 继承来制作我的自定义。我在这个项目中没有任何角色。我只想通过电子邮件和密码(自定义密码哈希等)进行简单的身份验证,没有额外的功能。在默认 MembershipProvider 中,所有授权都是通过用户名进行的。但在我的项目中,它通过电子邮件发送,用户名用于其他目的。问题:

  1. 如何交换邮箱和用户名?
  2. 如果我要使用 [Authorize] 属性,我必须使用 RoleProvider 吗? MembershipProvider 类中是否有任何必需的成员来实现使用该属性?
  3. 也许根本不继承也不使用 MembershipProvider?只需使用我自己的 Repository 类进行授权和身份验证?

【问题讨论】:

    标签: asp.net-mvc entity-framework membership-provider


    【解决方案1】:
    1. 只需将他们的电子邮件地址输入用户名字段即可。
    2. 不,您不需要 RoleProvider。
    3. 您可以实施任何您想要的身份验证,但您应该坚持使用 Membership,除非您有特定的理由不这样做。

    【讨论】:

    • 我知道有人会提议我将电子邮件放在用户名字段中。但我不喜欢做这样的事。除了使用登录等默认控件之外,还有什么理由坚持会员资格?
    • @SPYke - 好吧,让我直截了当地说,您想使用他们的电子邮件作为他们的用户名,但您不想将他们的电子邮件作为他们的用户名?这甚至没有意义。
    • 电子邮件作为登录名,用户名我将在网站上显示为姓名或昵称。
    • 根据您的问题,Mystere Man 是对的——只需使用您将使用用户名的电子邮件地址即可。至于“用户名我将显示为名称或昵称”,您的意思是“john@doe.com”.Split('@')[0] 之类的吗?我的建议是在注册屏幕中有一个名称字段,该字段绑定到模型中的一个字段(可能是昵称?)并呈现它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多