2017-06-02 10 views
0

ci-dessous est une méthode utilisée pour vérifier si les Creds entrés sont bonnes. Je voudrais également ajouter à cela pour voir si elles font partie du groupe "XXX". Et ci-dessous j'ai essayé de jouer avec des trucs que j'ai trouvés sur la pile mais je n'ai pas beaucoup de chance. comment puis-je utiliser la méthode existante et y ajouter pour obtenir mes résultats?vérifier les informations d'identification de connexion pour voir si elles sont valides dans Active Directory et vérifier si elles sont en dehors d'un groupe spécifique dans AD

Public Function IsInGroup(ByVal UserName As String) As Boolean 
    'Dim MyIdentity As System.Security.Principal.WindowsIdentity = New WindowsPrincipal(New WindowsIdentity(UserName)) ' System.Security.Principal.WindowsIdentity.GetCurrent() 
    'Dim userPrincipal = New WindowsPrincipal(New WindowsIdentity(Username)) 
    Dim MyPrincipal As System.Security.Principal.WindowsPrincipal = New WindowsPrincipal(New WindowsIdentity(UserName)) 'New System.Security.Principal.WindowsPrincipal(userPrincipal) 
    Return MyPrincipal.IsInRole("XXX_YYY") 
End Function 

Également essayé de faire quelque chose comme ceci mais obtenant l'erreur que j'ai screenshotted.

Public Function IsInGroup(ByVal UserName As String) As Boolean 
    Dim Result As Boolean 
    Dim de As New DirectoryEntry("LDAP://AD") 
    Dim MemberSearcher As New DirectorySearcher 

    With MemberSearcher 
     .SearchRoot = de 
     .Filter = "(&(ObjectClass=Group)(CN=VAL_ITS))" 
     .PropertiesToLoad.Add("Member") 
    End With 

    Dim mySearchResults As SearchResult = MemberSearcher.FindOne() 

    For Each User In mySearchResults.Properties("Member") 

     If User = UserName Then 
      Result = True 
     Else 
      Result = False 
     End If 
    Next 

    Return Result 
End Function 

enter image description here

Répondre

0
'Project > Add Reference > System.DirectoryServices.AccountManagement & System.DirectoryServices 

Valider en utilisant l'espace de noms System.DirectoryServices.AccountManagement

Imports System.DirectoryServices.AccountManagement 

    Public function validate(username as string, password as string, domain as string) 

     Dim valid As Boolean = False 

     Using context As New PrincipalContext(ContextType.Domain, domain) 
      valid = context.ValidateCredentials(username, password) 
     End Using 

     return valid 

    End Function 

    Public function checkgroup(domain as string, username as string, groupname as string) 

     Dim isMember as boolean = false 
     Dim ctx As New PrincipalContext(ContextType.Domain, domain) 
     Dim user As UserPrincipal = UserPrincipal.FindByIdentity(ctx, username) 
     Dim group As GroupPrincipal = GroupPrincipal.FindByIdentity(ctx, groupname) 

     If user IsNot Nothing Then 
     If user.IsMemberOf(group) Then 
      isMember = True 
     End If 
     End If 

     return isMember 

    End Function 
+0

Im System.DirectoryServices importation, mais je ne suis pas obtenir "PrincipalContext" pour se définir. et il ne reconnaît pas AccountManagement – Gio

+0

Ajouter une référence à System.DirectoryServices.AccountManagement, puis Imports System.DirectoryServices.AccountManagement – TonyW