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

StackOverflow https://stackoverflow.com/questions/697065

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top