IdentityServer 和 Asp.net MVC
IdentityServer and Asp.net MVC
我正在构建一个应用程序,它是一个 Javascript SPA,后端带有 Asp.net mvc 控制器。我正在尝试使用 IdentityServer 进行身份验证。我的控制器上有授权属性。我的要求之一是用户的会话应在一定时间内过期(如果没有 activity,应提示用户登录)。由于安全限制,隐式流程对我不起作用。我抓取了 Identity4 示例 https://github.com/IdentityServer/IdentityServer4.Samples 并尝试使用 cookieauthentication 中间件,设置 ExpireTimeSpan 以查看是否使 cookie 过期。不知何故,即使在指定的时间跨度到期后,我仍然能够调用控制器。如何使用 Identity Server 和 Asp.net mvc 完成类似于 asp.net 会话超时的操作?
这是已知问题,请参阅 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
我正在构建一个应用程序,它是一个 Javascript SPA,后端带有 Asp.net mvc 控制器。我正在尝试使用 IdentityServer 进行身份验证。我的控制器上有授权属性。我的要求之一是用户的会话应在一定时间内过期(如果没有 activity,应提示用户登录)。由于安全限制,隐式流程对我不起作用。我抓取了 Identity4 示例 https://github.com/IdentityServer/IdentityServer4.Samples 并尝试使用 cookieauthentication 中间件,设置 ExpireTimeSpan 以查看是否使 cookie 过期。不知何故,即使在指定的时间跨度到期后,我仍然能够调用控制器。如何使用 Identity Server 和 Asp.net mvc 完成类似于 asp.net 会话超时的操作?
这是已知问题,请参阅 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