IdentityServer4 Перенаправить на действие входа с информацией о клиенте - PullRequest
1 голос
/ 04 июня 2019

Есть ли способ управлять перенаправлением на страницу входа, сохраняя параметры клиента в строке запроса?

Я создал страницу забытого пароля на сервере идентификации и вставил перенаправление на страницу входа

<a asp-action="Login" asp-controller="Account">Go Log in</a>

если я попытаюсь перейти на эту страницу, а затем вернуться на страницу входа, нажав на эту кнопку. Когда я вхожу в систему, URL перенаправления не работает, и я остаюсь на сервере идентификации.

1 Ответ

0 голосов
/ 04 июня 2019

Не уверен, поможет ли это вам, но вот мой ответ.

Я использую неявный поток с учетными данными клиента со следующими настройками на моем клиенте.

Запуск.cs

services.AddAuthentication(option => {
                option.DefaultScheme = "Cookies";
                option.DefaultChallengeScheme = "oidc";

            }).AddCookie("Cookies")
            .AddOpenIdConnect("oidc", options => {
                options.SignInScheme = "Cookies";
                options.Authority = Configuration["Authentication:Authority"];
                options.RequireHttpsMetadata = false;
                options.ClientId = Configuration["Authentication:ClientId"];
                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.ClientSecret = "secret";
                options.AuthenticationMethod = OpenIdConnectRedirectBehavior.FormPost;
            });

На контроллере, который вы пытаетесь защитить, есть атрибут [Authorize].

в моем клиентском приложении, у меня есть это.

        [Authorize]
        public IActionResult performlogin()
        {
            return RedirectToAction("index", "home");
        }

Это должно перенаправить вас на сервер идентификации для входа в систему.

Моя подпись метода для входа в систему на сервере идентификации выглядит следующим образом.

public async Task<IActionResult> Login(string returnUrl){
 // do login code and redirect
 // returnUrl should have the redirect path with query string.
}

При успешном входе в систему перенаправьте

Надеюсь, это поможет

...