Как составить список ролей запрашивающего пользователя в службе WCF?
-
22-08-2019 - |
Вопрос
Только начал разбираться с безопасностью WCF.Как составить список ролей пользователя в сервисе?
Например.
// 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 )
{
}
}
Спасибо
Решение
При работе с группами Windows вы можете использовать этот код:
foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}
Другие советы
Инфраструктура безопасности на основе ролей в .NET (т. е. IPrincipal) не позволяет получать все роли пользователя.Вы можете только узнать, находится ли пользователь в определенной роли (через IPrincipal.IsInRole("имя-роли")).
Однако есть решения, если вы не против привязки к определенной настройке аутентификации/авторизации.Например, в другом плакате указывалось, как получить роли пользователя при использовании аутентификации Windows.
Не связан с StackOverflow