我有一些正在運行的LDAP代碼,我們使用其專有名稱重新綁定到找到的用戶以驗證用戶。實際上,這是發生了什麼事:OpenLdap C#使用可分辨名稱中的轉義字符進行綁定
string userDn = @"cn=Feat Studentl+umanroleid=302432,ou=Faculty of Engineering & Physical Sciences Administration,ou=Faculty of Engineering & Physical Sciences,ou=People,o=University of TestSite,c=GB";
string fullPath = @"LDAP://surinam.testsite.ac.uk:636/" + userDn;
DirectoryEntry authUser = new DirectoryEntry(fullPath, userDn, "mypassword", AuthenticationTypes.None);
authUser.RefreshCache();
然而這會導致錯誤未知錯誤80005000在DirectoryEntry.Bind()
我懷疑問題可能是,DN有一個「+」和「=」在CN屬性中。因此發現逃避這個問題的方法應該是用\和字符的十六進制值之後,我嘗試這樣做:
string userDn = @"cn=Feat Studentl\2Bumanroleid\3D302432,ou=Faculty of Engineering & Physical Sciences Administration,ou=Faculty of Engineering & Physical Sciences,ou=People,o=University of TestSite,c=GB";
但是我得到的錯誤:
登錄失敗:未知的用戶名或錯誤密碼
我認爲這是因爲現在它對請求感到滿意,但由於某種原因,它無法匹配用戶DN。
反正有這個嗎?
感謝Gregory。我嘗試了你的例子,我相信它會幫助別人,但對我來說,它仍然在內部發生了80005000錯誤。我已經發布了一個較低級別的DirectoryServices示例,我已設法開始工作。 – user1444886 2013-02-20 13:05:58