7

一个可以使用

  new PrincipalContext(ContextType.Domain,null)

没有为 Active Directory 提供任何连接字符串。

使用时,ActiveDirectoryMembershipProvider您必须在web.config.

我正在处理的站点将部署在多个站点上,我不想web.config为每个部署填写详细信息。

如何:在 MSDN 上的多个域中使用带有 Active Directory 的表单身份验证指定 3 个(!)成员资格提供商来处理 3 个域,这并不令人印象深刻。然而,这篇文章来自 2005 年,它处理的任务与我所追求的不同。

问题:

是否可以ActiveDirectoryMembershipProvider在 web.config 中不硬编码 LDAP 端点的方式使用?

我宁愿使用ActiveDirectoryMembershipProvider而不是PrincipalContext(可能)有能力打电话ChangePassword等。

4

1 回答 1

1

ActiveDirectoryMembershipProvider不,不指定目标 LDAP 服务器就无法使用。

必须指定连接字符串,并且该字符串必须包含一个服务器(包含ADS_FORMAT_SERVER

您必须在标识要使用的 Active Directory 服务器、Active Directory 域或 ADAM 应用程序分区的 Web.config 文件中创建一个 connectionStrings 元素(ASP.NET 设置架构)条目。提供者将仅在域范围内或域内的子范围内运行。

如果您想支持活动目录林,并且可以选择丢失表单身份验证,请考虑使用 Windows 身份验证。Windows 身份验证将使用 NTLM 和 Kerberos 来获取用户在森林中的身份,您仍然可以通过模拟更改用户密码。见WindowsIdentity.Impersonate()

于 2014-02-15T18:34:32.353 回答