|
1
|
| Malik Daud Ahmad Khokhar · 技术社区 · 17 年前 |
|
|
1
4
记住会话过期的诀窍是,这种情况发生在后台运行的工作进程中,如果不返回服务器检查状态,就无法直接通知用户。 我要做的是让页面注册一个javascript块,该块将在指定的超时后再次将用户重定向到登录页面:
您会注意到我的web.config文件中存储了实际的毫秒数,这样我就可以根据需要调整超时时间。 使用它,结合global.asax文件中的典型会话结束事件,可以非常清楚地处理Web应用程序中的会话超时。 |
|
|
2
2
有点延迟回复,但是,如果使用标准的ASP.NET成员资格提供程序,也可以使用下面的配置。 其基本思想是让认证cookie+会话同时过期。ASP.NET的自动行为将使您返回到定义的登录页面。身份验证cookie上的“slidingExpiration”属性必须为“true”,以便在会话处于活动状态时继续延长其寿命。
|
|
|
3
1
一个选项不是将客户端计时器设置为盲目重定向,而是让计时器命中一个小型Web服务,该服务可以指示是否应重定向用户。它的作用是为您提供更多的灵活性,您可以在许多情况下重定向用户,包括:
我用这种方法处理多个用户帐户非常成功。至于处理会话,您可能希望监听会话超时,甚至将其存储在会话超时的哈希表中。 当该用户调用Web服务时,您从散列中删除它们,并告诉客户机代码重定向它们。 这种类型的系统的另一个好处是,您可以跟踪浏览器何时访问服务器,以便更好地了解谁仍然在线。 编辑 回应以下评论: 我认为调用公共方法不会更干净。一旦您这样做了,您就假定所有页面共享一个母版页或公共基类。我不想做那种假设。另外,如果您打算使用pagemethods方法,这将不起作用,因为pagemethods必须是静态的。 我不完全确定您的意图是什么,但是如果您要对每个请求调用这个方法,那么我将使用HTTP模块并钩住管道来实现这一点;但是,这只在发出请求时才有效。通过使用带有客户端计时器的Web服务,您可以重定向用户,即使他们没有发出任何请求。 |
|
|
4
0
你能在global.asax文件中加入会话结束事件吗? |
|
|
5
0
下面的答案是有史以来最好的例子…… 最好这样试试:
您会注意到我的web.config文件中存储了实际的毫秒数,这样我就可以根据需要调整超时时间。 使用它,结合global.asax文件中的典型会话结束事件,可以非常清楚地处理Web应用程序中的会话超时。 当做, 纳加拉朱 戴尔PerotSystems|| |