web-dev-qa-db-ja.com

C#を使用してActive DirectoryにユーザーIDが存在することを確認する

USERIDがActive Directoryに存在するかどうかを確認するにはどうすればよいですか。

LDAP文字列とユーザーIDがありますが、そのユーザーIDがActive Directoryに存在するかどうかを確認できますか。これをASP.NET Webアプリケーション(.NET 3.5)に使用しています

26
msbyuva

(ドメインを認証対象のドメインに置き換えるか、パラメーターを完全に削除する)の手順に従って何かを行うことができます。

public bool DoesUserExist(string userName)
{
    using (var domainContext = new PrincipalContext(ContextType.Domain, "DOMAIN"))
    {
        using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userName))
        {
            return foundUser != null;
        }
    }
}

ユーザーが存在するかどうかを確認するため。これはSystem.DirectoryServices.AccountManagement名前空間とアセンブリ。

詳細は http://msdn.Microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx にあります。

PrincipalContextには、ユーザーの資格情報などを認証するための興味深いメソッドがあるため、さらにチェックすることをお勧めします。

46
Joshua Rodgers

System.DirectoryServices.AccountManagement名前空間。

string UserID = "grhm";
bool userExists = false;

using (var ctx = new PrincipalContext(ContextType.Domain))
{
    using (var user = UserPrincipal.FindByIdentity(ctx, UserID))
    {
        if (user != null)
        {
            userExists = true;
            user.Dispose();
        }
    }
}

詳細は http://msdn.Microsoft.com/en-us/library/bb344891.aspx を参照してください

8
Grhm