Перенаправление пользователя на страницу по умолчанию после входа в ASP.NET Core с помощью Okta - PullRequest
0 голосов
/ 05 июля 2018

Я использую Okta для аутентификации в своем приложении ASP.NET Core. После входа я хотел бы перенаправить пользователя на другую страницу, но не могу найти, где это настроить.

В ConfigureServices:

    services.AddAuthentication(sharedOptions =>
            {
                sharedOptions.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
            })
            .AddCookie()
            .AddOpenIdConnect(options =>
            {
                options.ClientId = "<clientid>";
                options.ClientSecret = configuration.OktaClientSecret;
                options.Authority = "https://dev-460010-admin.oktapreview.com/oauth2/default";
                options.CallbackPath = "/authorization-code/callback";
                options.ResponseType = "code";
                options.SaveTokens = true;
                options.UseTokenLifetime = false;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.Scope.Add("openid");
                options.Scope.Add("profile");
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    NameClaimType = "name"
                };
            });

Моя авторизация:

    public IActionResult Login()
    {
        if (!HttpContext.User.Identity.IsAuthenticated)
        {
            return Challenge(OpenIdConnectDefaults.AuthenticationScheme);
        }

        return RedirectToAction("Index", "Home");
    }

IIRC, то, что я ищу, является эквивалентом defaultUrl настройки в конфигурации FormsAuthentication в ASP.NET.

1 Ответ

0 голосов
/ 05 июля 2018

Новый шаблон в ASP.NET Core заключается в указании места назначения после входа в систему AuthenticationProperties при вызове для входа в систему:

var properties = new AuthenticationProperties
{
    RedirectUri = "/logged-in"
};

return Challenge(properties, OpenIdConnectDefaults.AuthenticationScheme);

Это также работает во время выхода из системы.

Полное раскрытие: я работаю в Okta и создал много наших библиотек .NET и примеров. Нам нужно лучше документировать это, я обязательно сделаю это!

...