我们有一个使用OWIN Cookie身份验证的ASP.NET MVC 5应用程序,带有滑动过期。在客户端上,我们有一个脚本,每分钟轮询一次Web服务以获取通知。我们希望阻止该Web服务调用导致身份验证令牌到期向前滑动。有没有办法做到这一点?
我正在考虑在OnValidateIdentity处理程序中实现我自己的自定义滑动过期方法,但在该方法中设置ExpiresUtc似乎并不会实际影响令牌的过期日期。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = cookieValidateIdentityContext =>
{
cookieValidateIdentityContext.Properties.ExpiresUtc = DateTime.UtcNow.AddMinutes(-1);
return Task.FromResult(0);
}
},
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
AuthenticationMode = AuthenticationMode.Active,
LoginPath = new PathString("/"),
SlidingExpiration = false,
LogoutPath = new PathString("/Sessions/Logout")
});
感谢任何帮助!
答案 0 :(得分:0)
我还没有测试过这个,但它应该在理论上起作用:
app.Use("/path1", app2 => app2.UseCookieAuthentication(...));
app.Use("/path2", app3 => app3.UseCookieAuthentication(...));
app.UseCookieAuthentication(...);
Use
来电的排序非常重要。关于Owin的美妙之处在于它能够覆盖子路径上的任何行为。