参考:
Building Your First Web API with ASP.NET Core MVC and Visual Studio
方案:
(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>
}
我未满足的期望是上述用户的登录时间已超时;但是,Hello *example user*!
和Log off
会再次呈现给导航栏;点击Log off
会注销示例用户</ em>。
那么如何在ASP.NET核心标识中设置到期时间呢 (a)登录用户可以在8小时等固定时间段后注销 (b)登录用户可以在一段固定的不活动时间(例如30分钟)后注销?
答案 0 :(得分:6)
回答你的问题:
问:登录后的用户可以在8小时后的固定时间段内注销
答:将Cookie选项的ExpireTimeSpan
设置为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#controlling-cookie-options了解详情。