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