我有一些有效的 LDAP 代码,我们在其中重新绑定到找到的用户,以便使用他的专有名称验证用户。实际上,这就是正在发生的事情:
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();
但是,这会在 DirectoryEntry.Bind() 处导致错误未知错误 80005000
我怀疑问题可能是 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。
有没有办法解决?