Comment puis-je inscrire les rôles de l'utilisateur qui demande dans un service WCF?
-
22-08-2019 - |
Question
Just a commencé à se familiariser avec la sécurité WCF. Comment puis-je lister les rôles d'un utilisateur au service?
par exemple.
// Could use declarative security here, i.e. using PrincipalPermission attribute
public string MyService()
{
// Would like some code that does something like:
foreach( Role role in CurrentUser.Roles )
{
}
}
Merci
La solution
Lorsque vous traitez avec des groupes Windows, vous pouvez utiliser ce code:
foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}
Autres conseils
L'infrastructure de sécurité basée sur les rôles .NET (c.-à-IPrincipal) ne permet pas à aller chercher tous les rôles d'un utilisateur. Vous ne pouvez demander si un utilisateur est dans un rôle spécifique (via IPrincipal.IsInRole ( "role-name")).
Cependant, il existe des solutions si vous ne me dérange pas d'être lié à une authentification / autorisation d'installation particulière. Par exemple, une autre affiche a comment obtenir le rôle de l'utilisateur lors de l'authentification de Windows.