Как я могу получить userId в проекте Api для зарегистрированного пользователя? - PullRequest
1 голос
/ 11 октября 2019

У меня есть проект Api и проект IdentityServer. Пользователь вошел в IdentityServer. Как я могу получить userId зарегистрированного пользователя в проекте Api?

Я авторизован на сервере идентификации, но у меня нет доступа к API, я вижу ошибку 401 (неавторизованную), когда я пытаюсь позвонитьМетод API, почему?

Я добавил в Api для Startup.cs в методе ConfigureServices:

services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
    options.Authority = "url to identity server";
    options.ApiName = "test";
});

services.AddAuthorization(options =>
{
    options.AddPolicy("defaultpolicy", builder =>
    {
        builder.RequireAuthenticatedUser();
    });
});

В методе Configure:

app.UseAuthentication();

Контроллер API:

[Authorize("defaultpolicy")]
public class ApplicationsController : ControllerBase
{
....
}

1 Ответ

0 голосов
/ 11 октября 2019

Внутри вашего [Apize] защищенного метода контроллера Api вы можете использовать:

var userId = User?.FindFirst(ClaimTypes.NameIdentifier);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...