Comment puis-je récupérer tous les rôles (groupes) d'un utilisateur est membre de l'?
Est-il un moyen pour obtenir une liste des rôles Windows utilisateur authentifié est, sans explicitement l'objet de vérification par WindowsPrincipal.IsInRole
méthode?
Vous devez vous connecter pour publier un commentaire.
WindowsPrincipal.IsInRole
vérifie juste si l'utilisateur est un membre du groupe avec ce nom; un Groupe Windows est un Rôle. Vous pouvez obtenir une liste des groupes auxquels un utilisateur est un membre de laWindowsIdentity.Groups
propriété.Vous pouvez obtenir
WindowsIdentity
de votreWindowsPrincipal
:ou vous pouvez l'obtenir à partir d'une méthode de fabrique sur WindowsIdentity:
WindowsIdenity.Groups
est une collection deIdentityReference
qui vous donne juste le SID du groupe. Si vous avez besoin des noms de groupe, vous aurez besoin de traduire leIdentityReference
dans unNTAccount
et obtenir la Valeur:var identity = User.Identity as WindowsIdentity;
EDIT: Josh me battre pour elle! 🙂
Essayer cette
Si vous n'êtes pas connecté au serveur de domaine, le
Translate
fonction peut jeter l'exception suivanteThe trust relationship between this workstation and the primary domain failed.
Mais pour la plupart des groupes, il sera OK, donc j'utilise:
Dans un ASP.NET MVC site, vous pouvez le faire comme ceci:
Ajouter à votre site Web.config:
Ensuite, vous pouvez utiliser
Roles.GetRolesForUser()
pour obtenir toutes les Fenêtres de groupes dont l'utilisateur est membre. Assurez-vous que vous êtesusing System.Web.Security
.