Я реализовал систему авторизации токенов в веб-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. Должен ли я активировать что-то?