27

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

LDAP文字列とUserIDを持っていますが、そのUserIDがActiveDirectoryに存在するかどうかを確認できますか。これをASP.NETWebアプリケーション(.NET 3.5)に使用しています

4

2 に答える 2

49

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

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には、ユーザーの資格情報などを認証するための興味深いメソッドがあるため、さらにチェックインすることをお勧めします。

于 2010-12-15T20:44:07.137 に答える
9

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を参照してください。

于 2010-12-15T20:44:47.480 に答える