Domanda

Appena iniziato alle prese con la sicurezza WCF. Come faccio a elencare i ruoli di un utente al servizio?

per es.

// 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 )
    {
    }
}

Grazie

È stato utile?

Soluzione

Quando si tratta di gruppi di Windows è possibile utilizzare questo codice:

foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
    Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}

Altri suggerimenti

L'infrastruttura di protezione basata sui ruoli in .NET (cioè IPrincipal) non consente il recupero di tutti i ruoli di un utente. Si può chiedere solo se un utente è in un ruolo specifico (via IPrincipal.IsInRole ( "nome-ruolo")).

Tuttavia, ci sono soluzioni se non vi dispiace essere legato a una particolare configurazione di autenticazione / autorizzazione. Ad esempio, un altro poster ha sottolineato come ottenere i ruoli degli utenti quando si utilizza l'autenticazione di Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top