2

ドメインにクエリを実行して、次のことを確認しようとしています。

  1. ユーザーは有効なユーザーです (正しいパスワードを持っています)
  2. ユーザーが有効です
  3. ユーザーはグループ x に属しています

私の開発マシンはこのドメインに属していません。アプリケーションでユーザー名とパスワードを指定したい

System.DirectoryServices.AccountManagement 名前空間を使用していますが、これが最も効率的な方法のようですが、ドメイン コントローラーから最も基本的な情報を取得するのに苦労しています。

別のツールを使用して LDAP を調べることができます。

最初のテストはユーザー情報を収集することです。以下のコードはユーザーに対して null を返します。ただし、ユーザーは有効です。

私は何を間違っていますか?

    // set up domain context
 PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "server","CN=Users,DC=doom,DC=home", "ldapuser","password");

  // get user contect
 UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.Name, username);

 //is user locked?
 var locked = user.Enabled;

アップデート:

以下のように bind メソッドを定義すると、「ドメインに関する情報を取得できませんでした (1355)」というエラーが表示されます。

var ctx = new PrincipalContext(ContextType.Domain, "server", "DC=doom,DC=home", ContextOptions.SimpleBind, "ldapuser", "password");
4

1 に答える 1