ドメインにクエリを実行して、次のことを確認しようとしています。
- ユーザーは有効なユーザーです (正しいパスワードを持っています)
- ユーザーが有効です
- ユーザーはグループ 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");