2010-01-19 115 views
2

我已經設置了ActiveDirectoryMembershipProvider connectionProtection屬性,以確保ActiveDirectoryMembershipProvider,根據MSDN文檔指出,當此設置爲安全以下成立:LDAPS與ASP.Net Web表單

「的ActiveDirectoryMembershipProvider類將嘗試連接到使用SSL的活動目錄如果SSL失敗,第二次嘗試使用登錄和密封連接到活動目錄,如果兩次嘗試失敗,ActiveDirectoryMembershipProvider實例將拋出一個ProviderException異常。

該代碼的工作原理和查詢可以針對LDAP進行,但有一個問題讓我有點困惑,因爲我的連接字符串前綴爲LDAP而非LDAPS。將其更改爲LDAPS將導致以下錯誤: 「解析器錯誤消息:錯誤HRESULT E_FAIL已從調用返回到COM組件。」

這裏發生了什麼?在第一種情況下,連接字符串就是LDAP正在使用的SSL?該文件表明,如果不是,應該拋出異常。如果不是,那麼在這種情況下會出現這種錯誤的可能原因是什麼?

回答

2

據我所知,所有的LDAP DN(專有名稱)始終只有一個LDAP前綴 - 無論它們是否通過安全鏈接。安全方面通常通過所用服務器上的端口顯示,389是不安全的默認值,636是安全通信的默認值。

但是,LDAP專有名稱的規範實際上沒有LDAPS前綴。幾年前,我做了大量的LDAP工作,而且我確實記得必須處理不同的端口以獲得可信或安全的通信,但我從來沒有一個完全合格的LDAP路徑除了前綴LDAP://(案例也是敏感的!)。