2012-08-10 26 views
6

一个可以使用的通过编程设置的ConnectionString为ActiveDirectoryMembershipProvider

new PrincipalContext(ContextType.Domain,null) 

无需提供任何连接字符串为Active Directory。

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

我正在使用的网站将部署在多个网站上,我不希望为每个deplyoment填写web.config中的详细信息。

How To: Use Forms Authentication with Active Directory in Multiple Domains MSDN指定3(!)成员资格提供商处理3个不令人印象深刻的域。然而,这篇文章是从2005年开始的,它处理的是我之后的不同任务。

问题:

是有可能的方式是,LDAP终点并不在web.config中的硬编码使用ActiveDirectoryMembershipProvider

我宁愿使用ActiveDirectoryMembershipProvider而非PrincipalContext有(可能)来调用的能力ChangePassword

回答

0

不,这是不可能使用ActiveDirectoryMembershipProvider没有指定目标LDAP服务器。

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

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

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

相关问题