2016-10-18 1 views
1

Im PrincipialContext-Konstruktor, wenn ich nur den Domain-Namen gebe, kann ich den Benutzer validieren. Wenn ich jedoch CN = "BadGroupNameDoesNotExist" einfüge, wird der Benutzer immer noch als "true" validiert. Es scheint, dass es egal ist, was ich für die CN einstelle.PrincipalContext ActiveDirectory, das einen Benutzer in einem Container validiert

Warum ist das? Ich bin neu im Active Directory und dachte, dass das Setzen eines gültigen CN nur dann gültige Zugangsdaten hätte, wenn er zu dieser Gruppe gehört, aber das scheint nicht wahr zu sein?

+0

Sie nicht brauchen, in dem CN weitergeben, wie Sie ich tun etwas veröffentlichen wird, die ich zur Zeit das funktioniert tue in in Bezug auf die Validierung eines Benutzers in AD – MethodMan

Antwort

0

Sie könnten versuchen, eine utils-Klasse erstellen und die folgenden Methoden etc ..

using System.Security; 
using System.DirectoryServices.AccountManagement; 
public struct Credentials 
{ 
    public string Username; 
    public string Password; 
} 
public class Domain_Authentication 
{ 
    public Credentials Credentials; 
    public string Domain; 
    public Domain_Authentication(string Username, string Password, string SDomain) 
    { 
     Credentials.Username = Username; 
     Credentials.Password = Password; 
     Domain = SDomain; 
    } 
    public bool IsValid() 
    { 
     using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain)) 
     { 
      // validate the credentials 
      return pc.ValidateCredentials(Credentials.Username, Credentials.Password); 
     } 
    } 
} 
+0

Wie würde ich es True zurückgegeben, wenn nur der Benutzer zu einer bestimmten Gruppe gehörte? –

+0

Sie können 'GroupPrincipal' innerhalb der Verwendung verwenden, zum Beispiel' GroupPrincipal group = GroupPrincipal.FindByIdentity (principalContext, "YourGroupName"); 'Dann können Sie die Eigenschaft group.Members durchsuchen, bis Sie einen Principal haben, den Sie wollen. – MethodMan

+0

Beispiel 'foreach (Principal prnc in group.Members)' – MethodMan

Verwandte Themen