0

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

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

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

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

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

4

2 回答 2

1

如果您不想存储密码(默认情况下 SimpleMembership 会这样做),您最好从ExtendedMembershipProvider(或者可能从SimpleMembership,但这会变得复杂)派生您自己的自定义提供程序并编写 LDAP 实现,或者使用其中之一NuGet 上的那些。中没有内置的 LDAP 支持SimpleMembership,因此您所做的任何方法都是令人讨厌的 hack,以后可能会咬您一口。

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

(编辑)

脚注。在我对“如何将我自己的数据库与 SimpleMembership 和 WebSecurity 一起使用?MVC4 安全性到底是什么?”的回答中 我研究了成员资格的历史,如何ExtendedMembershipProvider适应这一点,以及新类(例如)如何在提供者(例如,WebSecurity提供者的具体实现)的基础上工作。对于任何希望派生自己的提供程序来使用的人来说,这个答案值得一读。ExtendedMembershipProviderSimpleMembershipProviderWebSecurity

于 2013-06-07T06:13:01.680 回答
0

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

于 2013-06-15T04:36:06.610 回答