我们为SharePoint Web应用程序编写了一个身份验证提供程序,可以请求多个LDAP目录。
必须通过SSL请求其中一个LDAP服务器。因此,我们将用于将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
哪种情况会导致此错误?
更新:
I found some information about the error message。问题似乎是证书存储,因为用户只将证书存储在用户的商店中,而不是存储在计算机的商店中。不幸的是我们已经将它存储在那里。那么这仍然是证书问题吗?
UPDATE /溶液
实际上问题已经解决了。似乎根CA证书是正确导入的,但LDAP服务器响应的错误消息是由客户提供给我们进行测试的过期用户帐户引起的。
答案 0 :(得分:0)
完全信任的CA可能无法为您的证书提供服务。您是否已进入证书mmc的信任关系并将CA服务器建立为LDAP服务器上的受信任根权限?
编辑:另外值得注意的是,报告的服务器名称可能与传递的证书不匹配。您可能需要检查LDAP服务器的日志,以确保报告的服务器名称与证书列表的报告相同。
答案 1 :(得分:0)
我相信当修改用户被禁用时会发生此错误。
尝试启用用户并重试修改。