2012-02-27 25 views
0

Active Directory LDAPユーザーの認証用のコードを記述していますが、ADのすべてのユーザーアカウントを認証しますが、他のユーザーアカウントではないAdministratorアカウント認証のみを要求します。 。DNS接続の名前(添付画像を参照してください)管理者アカウントのLDAP認証

 try 
     { 
      DirectoryEntry entry = new DirectoryEntry(Domain, UserName, Password); 
      object nativeObject = entry.NativeObject; 
      Program.fileWrite.WriteLine(DateTime.Now + "\t Login with credentials " + UserName + " and " + Password); 
      return true; 
     } 
     catch (DirectoryServicesCOMException e) 
     { 
      Program.fileWrite.WriteLine(DateTime.Now + "\t " + e.Message); 
      return false; 
     } 

login page

答えて

2

は、このコードを試してみてください:非常にクールな作品.IT

public static bool ValidateCredential(string domain, string userName, string password) 
    { 
     using (var context = new PrincipalContext(ContextType.Domain, domain)) 
     { 
      using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName)) 
      { 
       if (user == null) return false; 

       using (var group = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "Domain Admins")) 
       { 
        if (group == null) return false; 

        foreach (var member in group.GetMembers()) 
        { 
         if (member.Sid.Equals(user.Sid)) 
         { 
          return context.ValidateCredentials(userName, password); 
         } 
        } 
       } 
      } 
     } 

     return false; 
    } 
+0

感謝 – soundy

関連する問題