1

選択したユーザーが OU 内に存在するかどうか (そのユーザーがログオンしているユーザー名によって) を確認したいのですが、これを行う最も正しい方法は何ですか? その後、ユーザーを選択してパスワードを変更したいと思います。

ここでいくつかのヘルプを見つけました: http://www.codeproject.com/KB/system/everythingInAD.aspx#46

しかし、私が見つけたコードは次のようになりました。

public static bool Exists(string objectPath)
{
    見つかったブール値 = false;
    if (DirectoryEntry.Exists("LDAP://" + objectPath))
    {
        見つかった = 真;
    }
    リターンが見つかりました。
}

次のように要約できます。

return DirectoryEntry.Exists("LDAP://" + objectPath);

したがって、ここで誰を信頼するべきか、また、ユーザー名と OU 名とドメイン名しかない場合、objectPath として何を渡す必要があるかがよくわかりません。

助けてください。

ありがとう。

4

1 に答える 1

4

ユーザー名はドメイン内で一意である必要があるため、OU について過度に心配する必要はないと思います。これを組み込むと、コードがより壊れやすくなり、より複雑になる可能性があります。可能であれば、新しいUserPrincipalクラスを使用してみます。

using (var context = new PrincipalContext( ContextType.Domain ))
{
     using (var user = UserPrincipal.FindByIdentity( context, IdentityType.SamAccountName, userName ))
     {
         if (user != null)
         {
             user.ChangePassword( oldPassword, newPassword );
             // or if you don't have the user's old password and
             // do have enough privileges.
             // user.SetPassword( newPassword );        
         }
    }
}
于 2009-12-27T13:52:40.117 に答える