Ali*_*ghi 5 asp.net ajax session-state session-timeout
我正在开发一个 ASP.Net 全 Ajax 站点。因为所有操作都是通过 Ajax 请求完成的,所以任何回发请求都不会发送到服务器。另一方面,我有一个 javascript 计时器,它发送 ajax 请求来检查会话,如果过期则将用户重定向到登录页面。
问题出在这里:当用户在页面上工作 20 分钟时,所有操作都将在 20 分钟后通过 ajax 请求进行,其会话过期,用户将在使用页面期间重定向到登录页面(通过该 javascript 计时器)。所以我需要用ajax请求刷新它的会话状态。但是如何?我怎样才能通过 ajax 请求重置会话状态超时!?!!
取决于我的 Google 搜索结果,我无法通过 ajax 请求执行,因为 SessionId 作为 cookie 存储在客户端中并更新它需要执行回发请求:(
注意:会话状态设置为InProc模式timeout = 20
抱歉我的英语语法不好,我是英语新手
问候,福罗吉
更新:ajax 请求是否更新会话状态超时?!!
更新:当我的用户登录站点时,我设置了一个如下会话:
Session["UserId"] = UserObject.Id;
Run Code Online (Sandbox Code Playgroud)
在我的所有页面中,我使用一些网络方法来执行如下操作:
[WebMethod]
public static Opr1 (Paramethers...)
{
//Question is here , how can i update UserId session to prevent to expire,how can i update it
//execute my codes to preform Opr1
}
Run Code Online (Sandbox Code Playgroud)
如果您使用 WebMethods,您应该像这样装饰您的方法
[WebMethod(EnableSession = true)]
Run Code Online (Sandbox Code Playgroud)
此外,如果您需要保持会话处于活动状态,您应该尝试创建一个实现 IRequireSessionState 的 HTTPHandler,此接口允许获取/设置(反序列化/序列化)最终将滑动会话超时的会话变量。
这是一篇关于会话和 ajax 调用的好文章。
希望这会有所帮助
问候。
| 归档时间: |
|
| 查看次数: |
15966 次 |
| 最近记录: |