Security 如何在ASP.NET核心标识中设置登录到期
参考资料:Security 如何在ASP.NET核心标识中设置登录到期,security,login,asp.net-core,asp.net-identity,expired-sessions,Security,Login,Asp.net Core,Asp.net Identity,Expired Sessions,参考资料: 场景: (a) 使用上述链接构建了.NET Core 1.0 Web API解决方案。 (b) 该解决方案是在调试模式下运行的。 (c) 已注册的用户 (d) 该用户已登录 (e) 许多小时后,该用户仍然登录 仍在同一调试会话中,执行以下代码: @using Microsoft.AspNetCore.Identity @inject SignInManager<ApplicationUser> SignInManager @inject UserManager<
场景:
(a) 使用上述链接构建了.NET Core 1.0 Web API解决方案。
(b) 该解决方案是在调试模式下运行的。
(c) 已注册的用户
(d) 该用户已登录
(e) 许多小时后,该用户仍然登录 仍在同一调试会话中,执行以下代码:
@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>
}
@使用Microsoft.AspNetCore.Identity
@注入SignInManager SignInManager
@注入用户管理器用户管理器
@if(SignInManager.IsSignedIn(用户))
{
-
你好@UserManager.GetUserName(用户)!
-
注销
}
我未实现的期望是上述用户的登录将超时;但是,Hello*示例用户*代码>和注销
再次呈现到导航栏;单击注销
会注销示例用户
那么,如何在ASP.NET核心标识中设置过期时间,以便
(a) 已登录的用户可以在固定的时间段(如8小时)后注销,
(b) 一个已登录的用户可以在一段固定的不活动时间(如30分钟)后注销 要回答您的问题:
Q:登录的用户可以在固定的时间段(如8小时)后注销
答:将cookie选项上的ExpireTimeSpan
设置为8小时
Q:登录的用户可以在固定的不活动时间(如30分钟)后注销?
答:将ExpireTimeSpan
设置为30分钟,并将slidingexpirement
设置为True
阅读和
详细信息。谢谢您的建议;有没有无cookie的解决方案?使用JWT可能没有cookie,具体取决于您的实现。根据您的评论,我建议您通过谷歌搜索“web身份验证机制”和“HTTP的无状态特性”,开始您的web开发之旅。