如何在ASP.NET核心标识中设置登录过期

ger*_*wry 2 security login expired-sessions asp.net-identity asp.net-core

参考:
使用ASP.NET Core MVC和Visual Studio构建您的第一个Web API

场景:
(a)使用上述链接构建.NET Core 1.0 Web API解决方案.
(b)该解决方案在调试模式下运行.
(c)用户注册
(d)该用户登录后
(e)许多小时后该用户仍然登录

仍然在同一个Debug会话中,执行此代码:

@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>
}
Run Code Online (Sandbox Code Playgroud)

我未满足的期望是上述用户的登录会超时; 然而,Hello *example user*!Log off被渲染到导航栏 ; 单击Log off会注销示例用户.

那么如何设置ASP.NET核心标识中的到期时间,以便
(a)登录用户可以在固定时间段(如8小时
)后注销,(b)登录用户可以在修复后注销30分钟不活动的时间?

Uli*_*Uli 7

回答你的问题:

问:登录用户可以在8小时等固定时间段后注销
A:将ExpireTimeSpancookie选项设置为8小时.

问:登录后的用户可以在30分钟的固定不活动时间后注销?
答:设置ExpireTimeSpan为30分钟并设置SlidingExpirationTrue.

阅读https://docs.asp.net/en/latest/security/authentication/cookie.html#adding-and-configuringhttps://docs.asp.net/en/latest/security/authentication/cookie.html #controls-cookie-options了解详情.