Я никогда раньше не использовал сервер идентификации, и мне было интересно, как получить информацию о текущих пользователях, если они были аутентифицированы с использованием net ядра 3.
Использование barebones create response app -auth weather app template
в WeatherForecastController
у нас есть атрибут авторизации:
[Authorize]
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
со следующей конечной точкой:
[HttpGet]
public IEnumerable<WeatherForecast> Get()
Что вернет правильные данные, если вы вошли в систему in и получил токен-носитель jwt.
Я хотел бы создать конечную точку, которая: 1. Разрешает анонимный доступ (вход в систему или нет, поэтому атрибут авторизации необходимо удалить или заменить) 2. Затем он должен попытаться аутентифицировать пользователя. 3.Если пользователя можно идентифицировать, конечная точка вернет правильные данные, иначе, если пользователя невозможно идентифицировать, она вернет подмножество данных.
Я изо всех сил пытаюсь получить пользователя, который сделал запрос, я считаю, что я должен использовать конечную точку GET /connect/userinfo
identityserver с токеном-носителем в качестве параметра, но я понятия не имею, как это сделать . Я хотел бы получить доступ к user_id, чтобы я мог соответствовать таблице identityUser.
Я также пробовал:
var identity = (ClaimsIdentity)User.Identity;
IEnumerable<Claim> claims = identity.Claims;
Мне кажется, что есть правильный способ сделать это, что я я пропал. Буду благодарен, если кто-нибудь укажет мне верное направление.