【问题标题】:legacy (classic) ASP code session issue遗留(经典)ASP 代码会话问题
【发布时间】:2009-06-04 16:50:51
【问题描述】:

我的问题是关于经典 ASP,而不是 ASP.Net。我在这里问专家,因为搜索引擎总是告诉我 ASP.Net 答案。我的困惑是,

  1. 如何在经典的 ASP 代码中或通过配置设置会话过期时间?
  2. 如何延长会话过期时间?是否有会话过期事件?
  3. 如何知道会话何时到期?

提前致谢, 乔治

【问题讨论】:

  • 标记问题时请注意提示提示。任何名称后面数字小于 10 的标签都可能是错误的。
  • 谢谢,以后一定要注意。

标签: session asp-classic


【解决方案1】:

请阅读这篇文章,我认为它回答了你所有的问题:

http://www.w3schools.com/ASP/asp_sessions.asp

乔治,

服务器端有一个 session_end 事件,但我想你想要的是在客户端检测它。

为此,您必须在 javascript 上设置一个计时器,例如在会话超时前一分钟结束并弹出警报。警报使用户可以选择延长会话。如果用户说是,那么您发布表单(或 ajax 调用或任何在服务器端生成请求并因此扩展会话的东西)。

【讨论】:

  • 似乎不是会话结束事件和延长过期会话的解决方案?
  • 感谢您的更新,1.会话到期时我们可以在服务器端扩展会话吗? 2.“如果用户说是,那么您就发布表单(或 ajax 调用或任何在服务器端生成请求并因此扩展会话的任何东西)。” -- 我不想要一个强制用户离开页面的解决方案,我想扩展用户会话,同时让用户保留到同一页面以继续操作(例如编辑长文档)。任何想法如何做到这一点?
  • 他所说的ajax调用,不会强迫你离开页面。您只需要在会话到期之前为该站点产生一些流量,以便您可以重置超时(现在 + 20 分钟)。
  • @Zachary,如果你能向我推荐一些现成的 ajax 示例,我将不胜感激。在看到一些可行的代码之前,我对这个解决方案没有太多的想法。
【解决方案2】:

George,ASP Classic 会话超时充其量是挑剔的。我不会依赖他们。如果您需要对会话进行更多控制,我建议您实现自己的会话管理。

【讨论】:

  • 我对你的意思很感兴趣——“至多挑剔”?分享更多见解和经验?目前我正在维护一些由经典 ASP 编写的遗留代码,存在令人头疼的会话过期问题...
  • 看一看:google.com/… 104,000 个结果应该很简单?出了大错。 ;)
  • 有没有办法知道会话何时到期?
【解决方案3】:

Session.Timeout = 5 '五分钟

会话将在您指定的无活动分钟数后过期。例如,如果您设置了会话变量,并且用户在 5 分钟内没有执行任何操作(如刷新),那么会话将被服务器放弃。

或者,您可以使用 Session.Abandon 自己放弃它

【讨论】:

  • 是否有会话结束事件?我们可以延长会话过期时间吗?
  • 不要以为你可以知道会话何时到期 bcos 如果说 ex。如果会话超时为 20 分钟,并且用户在 19 分钟内处于非活动状态,并且只剩下 1 分钟并且他/她点击应用程序,则会话在激活后的 20 分钟内有效。
  • Global.asa 中可能有会话结束事件,但我不确定。
  • 我在会话结束事件中找到它。
【解决方案4】:

不要认为如果说 for ex,您可以找出会话何时到期 bcos。如果会话超时为 20 分钟,并且用户在 19 分钟内处于非活动状态,并且只剩下 1 分钟并且他/她点击应用程序,则会话自激活后的 20 分钟内有效。

【讨论】:

【解决方案5】:

将会话 cookie 存储在您的数据库中,而不是依赖默认的经典 asp 会话存储。一旦存储在数据库中,您可以根据需要保持其有效期。

在我看来,失去与 ASP 经典的会话太容易了。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2016-04-15
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多