У меня есть решение, состоящее из:
- ASP.NET Core 2.1 с IdentityServer4 поверх ASP.NET Identity Core.
- Веб-API ASP.NET Core 2.1 настроен на использование IdentityServer в качестве поставщика проверки подлинности.
- Веб-приложение React SPA, использующее
oidc-client
библиотеку javascript.
Когда я создаю новых пользователей, я устанавливаю некоторые пользовательские утверждения, которые сохраняются в таблице AspNetUserClaims
, которая выглядит следующим образом:
Затем, в моем проекте API, внутри контроллера я хочу получить эти утверждения пользователя, прошедшего проверку подлинности.
Я ожидал, что this.User.Claims
получит их, но вместо этого он возвращает следующее, которое, похоже, является утверждениями, связанными с клиентом. приложение, а не пользователь.
Как я могу получить доступ к этим пользовательским утверждениям (address, location, tenant_role
) из контроллера внутри проекта веб-API?
Имейте в виду, что проект API не имеет доступа к классу UserManager
или чему-либо, связанному с ASP.NET Identity Core
.
this.User.Claims
. В противном случае вам нужно будет создать метод доступа к UserManager. - person Chris Pickford   schedule 10.12.2018Authorization: Bearer xxxx
). Не уверен, как мне кодировать утверждения в токен в IdentityServer. Любой пост/ресурс, который объясняет, как это сделать? - person empz   schedule 10.12.2018