IdentityServer和Asp.net MVC

时间:2016-09-26 20:12:43

标签: asp.net-core identityserver4

我正在构建一个应用程序,它是一个在后端使用Asp.net mvc控制器的Javascript SPA。我正在尝试使用IdentityServer进行身份验证。我在我的控制器上授权了属性。我的要求之一是用户的会话应在一定时间内过期(如果没有活动,则应提示用户登录)。由于安全限制,隐式流程对我不起作用。我抓住了Identity4样本https://github.com/IdentityServer/IdentityServer4.Samples并尝试使用cookieauthentication中间件,设置ExpireTimeSpan以查看是否使cookie过期。不知怎的,即使在指定的时间跨度到期后,我仍然可以调用控制器。如何使用Identity Server和Asp.net mvc完成类似于asp.net会话超时的操作?

1 个答案:

答案 0 :(得分: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