Как установить срок действия входа в систему с удостоверением ASP.NET Core

Ссылка:
Создание вашего первого веб-API с помощью ASP.NET Core MVC и Visual Studio

Сценарий:
(a) решение .NET Core 1.0 Web API было создано с использованием указанной выше ссылки.
(b) Это решение было запущено в режиме отладки.
(c) зарегистрированный пользователь
( г) этот пользователь вошел в систему
(д) много часов спустя этот пользователь все еще вошел в систему

По-прежнему в том же сеансе отладки выполняется этот код:

@using Microsoft.AspNetCore.Identity

@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@if (SignInManager.IsSignedIn(User))
{
    <form asp-area="" asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">
        <ul class="nav navbar-nav navbar-right">
            <li>
                <a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
            </li>
            <li>
                <button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
            </li>
        </ul>
    </form>
}

Мое неудовлетворенное ожидание заключалось в том, что время входа в систему вышеупомянутого пользователя истекло; однако Hello *example user*! и Log off снова отображаются на панели навигации; нажатие Log off приводит к выходу из системы пример пользователя.

Итак, как установить время истечения срока действия в ASP.NET Core Identity, чтобы
(а) вошедший в систему пользователь мог выйти из системы через фиксированный период времени, например 8 часов,
(б) вошедший в систему пользователь мог выйти из системы после определенного периода бездействия, например 30 минут?


person gerryLowry    schedule 03.09.2016    source источник


Ответы (1)


Чтобы ответить на ваши вопросы:

В: вошедший в систему пользователь может выйти из системы по истечении фиксированного периода времени, например 8 часов
О: Установите ExpireTimeSpan в параметрах cookie на 8 часов.

В: вошедший в систему пользователь может выйти из системы после определенного периода бездействия, например 30 минут?
A: Установите ExpireTimeSpan на 30 минут и установите SlidingExpiration на True.

Прочтите https://docs.asp.net/en/latest/security/authentication/cookie.html#adding-and-configuring и https://docs.asp.net/en/latest/security/authentication/cookie.html#controlling.-cookie-options, чтобы узнать подробнее.

person Uli    schedule 03.09.2016
comment
Благодарим за ваше предложение; есть ли решение для меньше файлов cookie? - person gerryLowry; 03.09.2016
comment
Использование JWT может быть без файлов cookie, в зависимости от вашей реализации. Основываясь на вашем комментарии, я предлагаю поискать в Google механизмы веб-аутентификации и природу HTTP без сохранения состояния, чтобы вы начали свое путешествие по веб-разработке. - person Uli; 04.09.2016