我正在用javascript调用ASMX web服务,它阻止了我的会话超时

本文关键字:我的 超时 会话 服务 javascript 调用 web ASMX | 更新日期: 2023-09-27 17:57:33

编辑2:

我有一个后台进程根据时间表或最终用户的请求在服务器端运行,我需要向所有用户显示一张图像,让他知道这个进程正在运行,或者在进程结束时取出图像。

编辑2已完成

我正在调用ASMX web服务,该服务位于我的IIS上托管的网站中,使用javascript,它可以防止我的会话超时。

为什么客户端对Web服务的调用会阻止我网站上的会话超时?

有办法防止它吗?

如果你需要我的问题更清楚或更详细,请告诉我。

编辑1:

根据@Rene147在下面的答案中提供的信息和链接,以及一些谷歌搜索,我在我的网络服务上尝试了以下内容:

[WebMethod(EnableSession=false)]
public string GetSummary()
{           
    HttpContext.Current.Response.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName);
    return "something";
}

但事实证明HttpContext.Current.Response.Cookies总是空的。

有什么提示吗?

我正在用javascript调用ASMX web服务,它阻止了我的会话超时

根据我对您上次编辑的理解,如果您想读取cookie的值,您需要使用Context.Request.Cookies而不是响应

[WebMethod(EnableSession = false)]
public string GetSummary()
{
    HttpCookie decryptedCookie =
        Context.Request.Cookies[FormsAuthentication.FormsCookieName];
    return "something";
}

默认情况下,表单身份验证使用滑动过期。这意味着,每次你向服务器提出请求时,你的cookie过期时间都会重置(有一些注意事项)。

若要禁用Sliding Expiration,请将web.config中的"slidingExpiration"设置为false。取自滑动到期

<authentication mode="Forms">
  <forms loginUrl="member_login.aspx"
    name=".ASPXFORMSAUTH"
    cookieless="UseCookies"
    requireSSL="true" 
    slidingExpiration="false" />
</authentication>