以编程方式为ActiveDirectoryMembershipProvider设置connectionString

时间:2012-08-10 08:04:50

标签: active-directory asp.net-membership

可以使用

  new PrincipalContext(ContextType.Domain,null)

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

使用ActiveDirectoryMembershipProvider时,您必须在web.config中提供LDAP端点。

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

MSDN上的

How To: Use Forms Authentication with Active Directory in Multiple Domains指定了3个(!)成员资格提供程序来处理3个域,这些令人印象深刻。但是,这篇文章是从2005年开始的,它涉及的是我所追求的不同任务。

问题:

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

我更愿意使用ActiveDirectoryMembershipProvider而不是PrincipalContext来(可能)调用ChangePassword等。

1 个答案:

答案 0 :(得分:1)

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

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

  

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

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