Cook ie expiration неправильно установлен на Session - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь настроить базовое приложение ASP. NET для работы с проверкой подлинности AzureAD. Аутентификация работает, но я заметил, что у повара ie, который хранится для запоминания зарегистрированного пользователя, есть срок действия 'Session'. Из-за этого каждый раз, когда я закрываю и снова открываю браузер и перехожу на веб-страницу, меня перенаправляют на Azure для входа в систему. Это переадресация короткая, потому что установлен флажок «Держать меня во входе», но мне не нравится перенаправление l oop, и я хотел бы сделать его go прочь.

Я наткнулся на OpenIdConnectOptions.UseTokenLifetime , и, насколько я понимаю, если для него установлено значение true (что есть), то время жизни повара ie должно быть автоматически установлено на время жизни токена, который я получаю от AzureAD.

Однако, похоже, это не сработает, потому что я могу убедиться, что время жизни токена составляет около 1 часа, но время жизни повара ie установлено на Сеанс, поэтому срок его действия истечет, как только поскольку браузер закрыт.

Я знаю, что могу установить жестко заданное значение для срока действия повара ie, но я бы предпочел использовать то же значение, что и время жизни токена (используя UseTokenLifetime).

Почему время жизни повара ie не установлено равным времени жизни токена, хотя UseTokenLifetime имеет значение true *

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
    .AddAzureAD(options => Configuration.Bind("AzureAd", options));

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.TokenValidationParameters.NameClaimType = "name";
    options.TokenValidationParameters.ValidateIssuer = false;
    options.TokenValidationParameters.ValidateAudience = false;

    options.UseTokenLifetime = true;

    options.Events = new OpenIdConnectEvents
    {
        OnTokenValidated = ctx =>
        {
            var lifetime = (ctx.SecurityToken.ValidTo - ctx.SecurityToken.ValidFrom);
            Console.WriteLine($"The token lifetime is {lifetime}"); // Prints out 01:05:00
            return Task.CompletedTask;
        }
    };
});

Cookie expiration

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