MVC войти в IdentityServer4 без перенаправления - PullRequest
0 голосов
/ 06 февраля 2019

Поэтому я пытаюсь войти в систему пользователей из моего приложения ASP.NET Core 2.2 MVC, не перенаправляя их на IdentityServer4.До сих пор я мог использовать поток ResourceOwnerPassword IS4 для получения токена и получения токена с RequestPasswordTokenAsync, но даже после того, как я установил свой клиент с токеном доступа, мое приложение не аутентифицировалось.

Контроллер:

 public async Task<IActionResult> Login()
    {
        var client = new HttpClient();

        var response = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
        {
            Address = "http://localhost:5000/connect/token",
            ClientId = "mvc3",
            ClientSecret = "secret",
            UserName = "LegitUsername",
            Password = "VeryLegitamitePassword",
            Scope = "api1"
        });

        client.SetBearerToken(response.AccessToken);

        return Redirect("/");
}

Текущее поведение: Токен предоставлен, но в моем заголовке по-прежнему есть кнопка «Вход»

Ожидаемое поведение: Токен предоставлен, отображается кнопка «Выход из системы»

Текущее поведение предполагает, что я не прошел проверку подлинности, даже если у меня есть токен.Я знаю, что мне не хватает чего-то, чтобы передать токен HttpContext для аутентификации моего приложения, но не могу понять, что именно.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 февраля 2019

Ну, вы не входите в систему пользователя.Вы запрашиваете токен доступа у id4.Обычно вы запрашиваете токен доступа, чтобы добавить его в запрос (как вы сделали) для доступа к ресурсу.

Пожалуйста, обратитесь к примерам: https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Clients/src

Есть несколько примеров реализации для mvc.

...