我正在用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
总是空的。
有什么提示吗?
根据我对您上次编辑的理解,如果您想读取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>