如何停止延长ajax调用的cookie过期时间?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何停止延长ajax调用的cookie过期时间?相关的知识,希望对你有一定的参考价值。
我将ExpireTimeSpan设置为一天,但我在UI中有通知服务,每隔5分钟发送一次ajax调用,因此ajax调用将延长到期时间,因为如果用户是一段时间,系统将不会在一段时间后注销在积极的,我怎么能解决这个问题
int expireTime = 1440; //one day
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
ExpireTimeSpan = TimeSpan.FromMinutes(expireTime),
SlidingExpiration=true,
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
我找到了asp.net核心的解决方案:https://medium.com/cacti-pins/conditionally-set-sliding-expiration-time-on-authentication-cookies-in-asp-net-core-e70ffe7da49d,但我使用的是.net4.5
我不认为这个问题有一个特别简单的解决方案,但你可以看到几个途径。
首先,您可以考虑使用WebSockets进行通知服务。在C#应用程序中,使用SignalR似乎是明智的。这将允许您在客户端和服务器之间打开持久连接并启用服务器推送,这应该只涉及在初始连接上发送cookie。请注意,默认情况下,如果浏览器中不支持其他选项仍然会遇到同样的问题,则SignalR可以降级为长轮询。
或者你可以看看交换ajax调用javascript fetch()
。这将允许您在提出请求时省略cookie。但是,您需要在应用程序中生成备用授权令牌并对其进行管理。您可能还需要将通知服务移动到其自己的应用程序中,以便它不使用相同的身份验证方案。
以上是关于如何停止延长ajax调用的cookie过期时间?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core MVC:设置身份 cookie 过期