2010-01-27 193 views
2

我們已經編寫了可以請求多個LDAP目錄的SharePoint Web應用程序的身份驗證提供程序。請求LDAP的問題:服務器不願意處理請求

其中一個LDAP服務器必須通過SSL請求。因此,我們將用於簽署LDAP服務器證書的CA證書導入SharePoint服務器的證書存儲區。

以下代碼片段顯示了我們如何驗證用戶。傳遞的憑證(賬戶,密碼)屬於我們要驗證的用戶。

var entry = new DirectoryEntry("LDAP://<ldap-server-address>", "cn=account,ou=sub,o=xyz,c=de", "password", AuthenticationTypes.SecureSocketsLayer); 
var searcher = new DirectorySearcher(entry);     
var found = searcher.FindOne(); 

當處理代碼,調用searcher.FindOne()拋出異常以下。

System.Runtime.InteropServices.COMException (0x80072035): The server is unwilling to process the request 

什麼情況會導致這個錯誤?

UPDATE:

I found some information about the error message。問題似乎是證書存儲區,因爲用戶只將證書存儲在用戶的商店中,而不是存儲在計算機的商店中。不幸的是,我們已經存儲在那裏。那麼這可能仍然是一個證書問題?

UPDATE /解決方案:

其實問題就解決了。看起來好像根CA證書已正確導入,但LDAP服務器響應的錯誤消息是由客戶給我們進行測試的過期用戶帳戶導致的。

回答

0

您的證書可能不是由完全信任的CA提供。你是否已經進入證書mmc的信任關係並將CA服務器建立爲LDAP服務器上的受信任根管理員?

編輯:另外值得注意的是,服務器的報告名稱可能與傳遞的證書不匹配。您可能需要檢查LDAP服務器的日誌,以確保服務器名稱與證書列表的相同。

+0

我們沒有對LDAP服務器的管理訪問權限,因爲它是我們客戶的服務器,也向我們提供了證書。 – Flo 2010-01-27 19:01:07

+0

其實我只是看到了一些東西。如果你使用LDAP安全,你不能使用LDAP://,你需要使用LDAPS://。否則,它將在應該加密時發送明文憑證。 – 2010-01-27 19:08:02

+0

好吧,我會試試看。我不確定的另一件事是我是否將證書存儲在正確的商店中。我把它放進電腦的商店。我認爲它應該可以用於身份驗證提供程序。爲了檢查這一點,我嘗試通過IE訪問LDAP,並注意到LDAP服務器的證書已經過驗證。所以我認爲當IE可以訪問證書進行驗證時,證書應該放在正確的位置。 – Flo 2010-01-27 20:27:35

0

我相信當修改中的用戶被禁用時會發生此錯誤。

嘗試啓用用戶並重試修改。