System.DirectoryServices.ProtocolsのLdapConnectionを使用してActive Directoryに問い合わせることはできますか?LdapConnectionを使用してADを列挙する
PrincipalContextのインスタンス化に問題があります。
private LdapConnection getLdapConnection(string username, string password, string ldapServer, bool secured)
{
int port = secured ? 636 : 389;
LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier(ldapServer, port, false, false));
if (secured)
{
connection.SessionOptions.ProtocolVersion = 3;
connection.SessionOptions.SecureSocketLayer = true;
}
connection.Credential = new NetworkCredential(username, password);
connection.AuthType = AuthType.Basic;
connection.SessionOptions.VerifyServerCertificate += (conn, cert) => { return true; };
connection.Bind();
return connection;
}
私は
PrincipalContext context = new PrincipalContext(
ContextType.Domain,
ldapServer,
null,
useSsl ? ContextOptions.SecureSocketLayer | ContextOptions.SimpleBind : ContextOptions.SimpleBind,
username,
password);
を使用しています主なコンテキストをインスタンス化しようとすると、私は完全ユーザ名のために、同じ値を渡しています:ここに私のコードは、誰もが問題を見つけることができた場合に、ですdomain\user
の形式であり、ldapServerはserver.domain.com
の形式であり、ldapServerは、プリンシパルコンテキストを作成するときに追加されます。
私が接続しようとしているサーバーには、LdapConnectionが検証のためにtrueを返すように設定されているので、これを防ぐことができる証明書の問題があります。これは信頼できるため、問題ではありません。私はサーバーにアクセスすることができないため、これを変更することはできません。
取得しているエラーは何ですか。 –
サーバーに接続できませんでした。 – Sam
あなたのLDAPサーバを 'dc = MyDomain、dc = com'として試してください –