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分钟不活动的时间?
回答你的问题:
问:登录用户可以在8小时等固定时间段后注销
A:将ExpireTimeSpancookie选项设置为8小时.
问:登录后的用户可以在30分钟的固定不活动时间后注销?
答:设置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 #controls-cookie-options了解详情.
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |