是否可以在不使用SimpleMembership的情况下实现用户配置文件?

时间:2013-06-07 03:18:23

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

我需要一些建议。我目前正在使用MVC 4&使用LDAP的SimpleMemberhip对用户进行身份验证。问题是,我不想将他们的用户名和密码存储在 webpages_Membership表出于安全考虑。第二个问题是我想提供用户可编辑的配置文件。

到目前为止,这是有效的:

  1. 首次使用用户日志,并在webpages_Membership
  2. 中创建新条目
  3. 主页上显示了用于编辑用户个人资料的个性化链接
  4. 首次访问个人资料时,用户名已添加到 UserProfiles 表中
  5. 从LDAP服务器获取某些用户详细信息并将其写入配置文件
  6. 然后,用户可以自定义其个人资料
  7. 我目前正在使用SimpleMembership覆盖 ValidateUser 方法。一切正常,但我不需要存储LDAP用户名&密码。可以这样做吗?

    P.S。我知道有更好的方法来创建新用户和配置文件除了第一次登录,但我还在努力。

2 个答案:

答案 0 :(得分:1)

如果你不想存储密码(SimpleMembership默认会这样做),你最好从ExtendedMembershipProvider(或者从SimpleMembership派生你自己的自定义提供者,但那样做得到复杂的)并编写LDAP实现,或使用one of the ones on NuGet。有no built-in LDAP support in SimpleMembership,所以你做的任何一种方法都是一个讨厌的黑客,以后可能会咬你。

对于UserProfile,听起来您的要求与通常的UserProfile用例不同 - 在UserProfile模型上创建自定义属性,相应地更新数据库,并构建UI以允许用户编辑任何一个他们应该能够直接编辑这些属性。

(编辑)

<强>脚注即可。在我对"How do I use my own database with SimpleMembership and WebSecurity? What is MVC4 security all about?"的回答中,我检查了成员资格的历史,ExtendedMembershipProvider如何适应这一点,以及WebSecurity等新类如何在提供者的基础上工作, ExtendedMembershipProvider(例如SimpleMembershipProvider)。对于任何想要派遣自己的提供者与WebSecurity一起使用的人来说,这个答案值得一读。

答案 1 :(得分:0)

我设法通过使用Code First创建所需的表来绕过在成员资格提供程序中存储用户详细信息。我现在能够创建新用户并将它们存储在UserProfile表中。