2009-03-30 5 views
2

Только что начал разбираться с безопасностью WCF. Как перечислить роли пользователя в службе?Как указать роли запрашивающего пользователя в службе WCF?

E.g.

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

Благодаря

ответ

2

При работе с группами Windows, вы можете использовать этот код:

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

роль на основе инфраструктуры безопасности в .NET (т.е. IPrincipal) не допускает загрузки всех роли пользователя. Вы можете узнать только, находится ли пользователь в определенной роли (через IPrincipal.IsInRole («ролевое имя»)).

Однако есть решения, если вы не против привязываться к конкретной настройке аутентификации/авторизации. Например, другой плакат указал, как получить роли пользователя при использовании проверки подлинности Windows.