VB.NET - Comment faire pour Convertir SID de Nom de Groupe avec Active Directory
À l'aide de VB.NET, Comment voulez-vous Convertir le sid de Nom de Groupe avec Active Directory?
exemple: j'ai besoin de pour obtenir "group_test" et pas de "S-1-5-32-544"
Le code que j'utilise est:
Public ReadOnly Property Groups As IdentityReferenceCollection
Get
Dim irc As IdentityReferenceCollection
Dim ir As IdentityReference
irc = WindowsIdentity.GetCurrent().Groups
Dim strGroupName As String
For Each ir In irc
Dim mktGroup As IdentityReference = ir.Translate(GetType(NTAccount))
MsgBox(mktGroup.Value)
Debug.WriteLine(mktGroup.Value)
strGroupName = mktGroup.Value.ToString
Next
Return irc
End Get
End Property
ou quelque chose comme ça?
currentUser = WindowsIdentity.GetCurrent()
For Each refGroup As IdentityReference In currentUser.Groups
Dim acc As NTAccount = TryCast(refGroup.Translate(GetType(NTAccount)), NTAccount)
If AdminGroupName = acc.Value Then
ret = "999"
End If
If UsersGroupName = acc.Value Then
ret = "1"
End If
comment les adapter à ce code? (si l'utilisateur est dans le groupe des xx, montrent groupe des xx sur la liste déroulante)
For Each UserGroup In WindowsIdentity.GetCurrent().Groups
If mktGroup.Value = "BIG" Then
Dim Company = ac1.Cast(Of MarketingCompany).Where(Function(ac) ac.MarketingCompanyShort = "BIG").FirstOrDefault
If Company IsNot Nothing Then
marketingCo.Items.Add(String.Format("{0} | {1}", Company.MarketingCompanyShort, Company.MarketingCompanyName))
End If
End If
Next
Vous devez vous connecter pour publier un commentaire.
Ici est un moyen simple écrit en C#, je pense que c'est pas dur de s'adapter :
Ici, il est en VB .NET grâce à RÉFLECTEUR
---- MODIFIÉ -----
Donc, voici ce que l'on veut, mais c'est la même que celle qui a été donné précédemment par @BiggsTRC
Code en C#:
Vous devez ajouter de l'assemblée System.DirectoryServices.AccountManagement.dll.
Si vous avez des problèmes avec connexion à l'AD, vous pouvez essayer d'ajouter AD serveur de nom dans PrincipalContext constructeur.
Voici un lien pour savoir comment convertir un SID à un nom: http://vbdotnet.canbal.com/view.php?sessionid=JEf85K%2B%2BeBj9Pz%2BWz9hJJicW%2FYEPtADXfcpYCovZ7js%3D
Fondamentalement, vous obtenez un DirectoryEntry objet que vous pouvez ensuite utiliser pour obtenir le nom. Toutefois, si vous êtes à la recherche pour ce que je crois être une méthode plus facile pour ce faire, il suffit de prendre l'utilisateur en cours et d'effectuer une recherche de pub pour leur groupe d'appartenance. Voici un exemple de comment faire (vous aurez besoin de la plus grande de l'article réellement accomplir votre tâche, mais ce code est la réponse précise à votre question): http://www.codeproject.com/KB/system/everythingInAD.aspx#39
Désolé pour le fait que le code est en C#. Toutefois, vous devriez être en mesure de simplement utiliser un convertisseur pour convertir VB.NET sans un problème.
Obtenir de l'Utilisateur Appartenances de l'Utilisateur Connecté à partir de ASP.NET en C#
Obtenir de l'Utilisateur Appartenances de l'Utilisateur Connecté à partir de ASP.NET dans VB.NET à l'aide de Développeur Fusion est un Outil de conversion: