我有一个我编写的控件,它有一个 javascript 组件和一个 Web 服务组件。我遇到的问题是javascript设置为:
setInterval(this._checkAlertsHandler, this._messageCheckInterval * 1000);
这会调用一个函数,该函数会像这样进行 Web 服务调用:
Alert.SiteAlertService.GetAlerts(this._receivedAlertsHandler, this._errorReceivedAlertsHandler);
所以这是使用 Web 服务 javascript 代理方法来访问 Web 服务。问题是我们的应用程序具有表单身份验证和超时值,因此如果用户空闲时间过长,它会将他们注销。
我的 web 服务调用显然将包含会话和表单身份验证密钥的 cookie 发送到 web 服务。asp.net web 服务然后自动更新会话和表单身份验证。每次 javascript 访问 Web 服务时,它基本上都会让用户保持活力。我不想要这种行为,这应该只是规避它,所以即使这个 js 正在访问 Web 服务以检查新消息,如果用户没有对我们的应用程序进行回发(并且实际上是空闲的)它会仍然将它们注销。这没有发生:(
我想要发生的是对 Web 服务的此间隔调用不会更新任何身份验证(会话更新我可以通过使用应用程序级变量和用户会话 ID 的字典键/值来解决,所以我不必使用任何会话级变量)。
我如何做到这一点/更改我的 Web 服务/或控制以按照我想要的方式工作?