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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top