Come faccio a elencare i ruoli dell'utente richiedente un servizio WCF?
-
22-08-2019 - |
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
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