Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 重置ldap用户密码(错误:服务器无法处理目录请求。)_C# 4.0_Openldap - Fatal编程技术网

C# 4.0 重置ldap用户密码(错误:服务器无法处理目录请求。)

C# 4.0 重置ldap用户密码(错误:服务器无法处理目录请求。),c#-4.0,openldap,C# 4.0,Openldap,我正在使用以下代码: LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier("DOMAIN",636)); connection.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true); connection.SessionOptio

我正在使用以下代码:

LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier("DOMAIN",636));

connection.SessionOptions.VerifyServerCertificate =
            new VerifyServerCertificateCallback((con, cer) => true);
connection.SessionOptions.ProtocolVersion = 3;
connection.AuthType = AuthType.Basic;
connection.Credential = new NetworkCredential("CN=user,CN=Users,DC=DOMAIN","password!");

connection.SessionOptions.SecureSocketLayer=true;

using(connection)
{
  connection.Bind();

  SearchRequest request = new SearchRequest("CN=Users,DC=DOMAIN", "CN=mayank",    System.DirectoryServices.Protocols.SearchScope.Subtree);

  SearchResponse response = (SearchResponse)connection.SendRequest(request);

  SearchResultEntry entry = response.Entries[0];

  DirectoryAttributeModification modifyUserPassword = new DirectoryAttributeModification();
        modifyUserPassword.Operation = DirectoryAttributeOperation.Replace;
        modifyUserPassword.Name = "unicodePwd";
        modifyUserPassword.Add(GetPasswordData("admin1234!"));

        ModifyRequest modifyRequest = new ModifyRequest(entry.DistinguishedName, modifyUserPassword);
        DirectoryResponse dirResponse = connection.SendRequest(modifyRequest);
}


这已成功连接到LDAP,但当尝试更改密码时,会抛出一个错误,说明“服务器无法处理目录请求。”

您是否尝试删除Bind()和SearchRequest并将条目Dn直接传递给modifyRequest(您拥有它,因为您正在使用它执行SearchRequest)。此外,我的代码(CentOsDS)使用userpassword属性(不涉及base64),而不是unicodepwd attributeThanks现在工作正常。我还有一个查询,我必须检查用户帐户是否已锁定。在CentOS DS上,它是entry的布尔nsaccountlock属性。由于尝试失败次数过多,可以使用int属性passwordretrycount检查锁定,该属性不能大于或等于最大授权fa无法重试登录