我正在构建一个应用程序,它是一个 Javascript SPA,后端带有 Asp.net mvc 控制器。我正在尝试使用 IdentityServer 进行身份验证。我在我的控制器上有授权属性。我的要求之一是用户的会话应该在一定时间内过期(如果没有活动,应该提示用户登录)。由于安全限制,隐式流程对我不起作用。我抓住了 Identity4 样本https://github.com/IdentityServer/IdentityServer4.Samples并尝试使用 cookieauthentication 中间件,设置 ExpireTimeSpan 以查看是否使 cookie 过期。不知何故,即使在指定的时间跨度到期后,我仍然可以调用控制器。如何使用 Identity Server 和 Asp.net mvc 完成类似于 asp.net 会话超时的操作?
问问题
917 次
1 回答
1
已知问题参见https://github.com/aspnet/Security/pull/893,已针对 1.1.0 修复。
等待 1.1.0 版本或使用OnTokenValidated
设置过期属性:
OnTokenValidated = async (context) =>
{
context.Properties.ExpiresUtc = <expire>;
await Task.FromResult(0);
}
另请参阅另一种解决方案:https ://github.com/aspnet/Security/issues/855#issuecomment-229495399
于 2016-09-27T12:08:14.327 回答