在MVC应用程序中,我在js中有代码,它会在会话到期前3分钟开始滴答。一旦用户点击屏幕,我就会尝试以这种方式延长会话超时。
在web.config中: -
<sessionState timeout="20" />
我有一个会话控制器,我做了ajax当用户点击屏幕而3分钟时钟滴答时,请转到下面的操作方法。
[Authorize]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public virtual ActionResult Extend()
{
Session.Timeout = 20;
return new EmptyResult();
}
控件确实来到此处并执行上述代码并退出。但实际上所有的Session变量都被刷掉了!为什么会这样?
另外,为什么我真的需要在.net本身应该能够扩展它时显式扩展会话,因为用户仍在与屏幕交互?
如果我必须明确扩展,我如何在不刷新Session变量的情况下扩展会话,而无需用户获取和回发,并继续与他离开的网站进行交互。
答案 0 :(得分:0)
用户返回应用程序池的任何请求都应该扩展会话。您无需重置。尝试取出Session.Timeout = 20.我认为你正在吹走你的会话。