Свойства проверки подлинности вызова ASP.NET Core Azure AD - задайте IsPersitent и ExpiresUtc - PullRequest
0 голосов
/ 24 января 2019

ВЫПУСК

Я хотел бы иметь возможность установить свойства ( IsPersistent & ExpiresUtc ) для запроса вызова по умолчанию для AzureADавторизоваться.Я не вижу, как это сделать, чтобы пользовательский файл cookie, созданный дольше, чем сеанс браузера (закрытие, а затем повторное открытие браузера).

Прямо сейчас единственный способ, которым я могу установить эти свойства для вызова, состоит в том, чтобы пользователь вручную вошел в систему, отправив им следующее действие.

[HttpGet]
public IActionResult SignIn()
{
    return Challenge(
        new AuthenticationProperties { RedirectUri = "/", IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddDays(10) },
            OpenIdConnectDefaults.AuthenticationScheme);
    }

Я бы скорее принудил пользователяавторизоваться, как только они войдут на сайт, используя следующий код, зарегистрированный в startup.cs

services.AddMvc(options =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    options.Filters.Add(new AuthorizeFilter(policy));
});

Базовый шаблон, который я использовал для запуска моего проекта, был из следующей команды

dotnet new mvc --auth SingleOrg --client-id <Application (client) ID> --tenant-id <Directory (tenant) ID>

Когда я запустил сайт, он вызовет первый входящий запрос и отправит меня по пути входа в систему и возврата в приложение.Это работает просто отлично с одним исключением.Срок действия файла cookie, отправляемого обратно клиенту, истекает 31 декабря 1969 года.

Затем я выхожу из приложения по стандартной ссылке SignOut без проблем.

Для входа в систему я мог бы использовать ссылку для входа по умолчанию

<a class="nav-link text-dark" 
    asp-area="AzureAD" 
    asp-controller="Account" 
    asp-action="SignIn">Sign in</a>

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

<a class="nav-link text-dark" 
    asp-area="" 
    asp-controller="Home" 
    asp-action="SignIn">Sign in</a>

Если я использую ссылку по умолчанию, я снова прохожу процесс аутентификации, и снова у файла cookie снова указывается дата по умолчанию, но если я нажимаю на свою пользовательскую ссылку, файл cookie возвращается с истечением 10 дней в будущем и длится в течение сеансов браузера.Я хочу, чтобы задание по умолчанию было таким же, как и задание, которое я написал.

Я прочитал различные посты безрезультатно, и мне нужна помощь, пожалуйста.

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