以编程方式为ActiveDirectoryMembershipProvider设置connectionString

tym*_*tam 7 asp.net-membership active-directory

一个人可以使用

  new PrincipalContext(ContextType.Domain,null)
Run Code Online (Sandbox Code Playgroud)

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

使用时ActiveDirectoryMembershipProvider,必须提供LDAP端点web.config.

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

如何:在MSDN上的多个域中使用表单身份验证与Active Directory指定3个(!)成员资格提供程序来处理3个域,这些令人印象深刻.但是,这篇文章是从2005年开始的,它涉及的是我所追求的不同任务.

问题:

是否可以使用ActiveDirectoryMembershipProviderLDAP端点未在web.config中进行硬编码的方式?

我宁愿使用ActiveDirectoryMembershipProvider而不是PrincipalContext(可能)具有调用ChangePassword等的能力.

Mit*_*tch 1

ActiveDirectoryMembershipProvider不可以,如果不指定目标 LDAP 服务器,则无法使用。

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

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

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