Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何在ASP.NET核心标识中设置登录到期_Security_Login_Asp.net Core_Asp.net Identity_Expired Sessions - Fatal编程技术网

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开发之旅。