我们有一个自动注销功能,可在4分钟左右后激活超时窗口。从web.config文件中的Authentication配置的FormsAuthentication元素检索超时值。 E.g:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="5" />
</authentication>
JavaScript代码只有一个计时器,每隔一秒检查一次,以查看是否:
以下是在客户端运行以扩展会话的代码示例:
$.ajax({
type: "GET",
url: alchemy.rootPath + "Account/TimeOutExtend"
});
被调用的控制器操作不执行任何操作:
public ActionResult TimeOutExtend()
{
return (ViewBag.None);
}
当我们让弹出窗口停止运行大约5秒钟然后单击按钮继续会话时,用户仍然会被注销。
这似乎来自服务器端而不是客户端上的任何东西。
对于当前用于扩展用户会话的MVC控制器的XmlHTTPRequest AJAX请求是否有可能实际上没有扩展会话,因为MVC以某种方式处理Ajax请求的方式不同?
答案 0 :(得分:1)
我认为会话不会在以下两种情况之一的MVC中扩展
1)发送的请求是跨域请求(CORS)
2)不知何故,用户信息(会话cookie)不会与ajax调用一起发送到服务器