Я реализовал систему авторизации токенов в веб-API ASP.NET с промежуточным программным обеспечением OWIN. Я успешно могу выполнить аутентификацию с помощью клиента REST и получить токен авторизации для вызова API. Если я поместил атрибут [Authorize]
в действие GET в моем контроллере, он также работает правильно. Если у меня нет действительного токена, он отрицает ресурс с сообщением 401, но если я использую [Authorize(Roles="admins")]
с параметром roles
, он не распознает роли пользователя. Я проверил вещи в базе данных и проверил, что usersinroles
правильно заполнен.
Это фрагмент кода:
[Authorize(Roles = "admins")]
public IEnumerable<CompanyModel> Get()
{
ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
bool isrole = principal.IsInRole("admins");
Я также проверил действие без параметра roles
, а isrole
boolean всегда false
. Должен ли я активировать что-то?