2012-08-10 24 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()

相關問題