【问题标题】:Is it possible to implement user profiles without using SimpleMembership?是否可以在不使用 SimpleMembership 的情况下实现用户配置文件?
【发布时间】:2013-06-03 06:22:24
【问题描述】:

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

到目前为止,以下是有效的:

  1. 首次用户日志,并在 pages_Membership 中创建新条目
  2. 主页上会显示用于编辑用户个人资料的个性化链接
  3. 第一次访问配置文件时,用户名被添加到 UserProfiles 表中
  4. 从 LDAP 服务器获取某些用户详细信息并写入配置文件
  5. 然后用户可以自定义他们的个人资料

我目前正在使用 SimpleMembership,并覆盖了 ValidateUser 方法。一切正常,但我不需要存储 LDAP 用户名和密码。这个可以吗?

附言我知道除了第一次登录之外,还有一种更好的方法来创建新用户和个人资料,但我仍在努力。

【问题讨论】:

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


    【解决方案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 的具体实现的基础上工作(其中@ 987654326@ 是,例如)。对于希望派生自己的提供程序以与WebSecurity 一起使用的任何人,该答案值得一读。

    【讨论】:

    • 感谢您的回复,非常感谢。我以前没有尝试过扩展会员资格,但看起来值得一试。我确实尝试了 nJupiter 包,但需要更详细地探索它们。仅供参考,如果我没有提到,UserProfile 工作正常。我可以编辑配置文件并保存它们。只是解决会员问题的问题。
    • @nouptime。 ExtendedMembershipProviderSimpleMembershipProvider 的基础,因此如果您想将您的提供程序与WebSecurity 一起使用,它就是派生的基础。我写了一篇关于WebSecurityExtendedMembershipProvider 是如何产生in this answer 的详细说明,这可能值得你看看。
    【解决方案2】:

    通过使用 Code First 创建所需的表,我成功地绕过了在 Membership 提供程序中存储用户详细信息。我现在可以创建新用户并将它们存储在 UserProfile 表中。

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 2011-10-16
      • 2019-12-17
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多