私はこのコードを使用しています:
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 に正常に接続されますが、パスワードを変更しようとすると、「サーバーはディレクトリ要求を処理できません」というエラーがスローされます。