了解 ASP.Net 会话生命周期

发布于 2024-07-23 18:34:48 字数 252 浏览 14 评论 0原文

我对 ASP 或 ASP.Net 会话生命周期(或生命周期)概念感到困惑。 更具体地说,我的困惑是:

  1. IIS 如何决定新会话何时开始以及现有会话何时结束? 特别是当我们调用重定向代码时,IIS 如何决定会话是继续还是结束?
  2. 我们如何设置会话过期时间? (目前我只知道通过web.config sessionState项来设置。)
  3. 一个会话是否可以访问另一个会话的变量?

I am confused about ASP or ASP.Net session life time (or life cycle) concepts. More specifically, my confusions are:

  1. How does IIS decide when a new session starts and an existing session ends? Especially how does IIS decide whether a session continues or ends when we call redirect code?
  2. How can we set session expire time? (Currently I only know to set it through web.config sessionState item.)
  3. Is it possible for one session to access another session's variables?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

叹沉浮 2024-07-30 18:34:48

会话通常通过在客户端计算机上生成唯一标识符作为 cookie 来处理。 这通常是一个会话 cookie,因此您无法轻松访问它。 当您访问使用会话的站点时,它会查找此 cookie。 如果没有找到,它会创建一个新会话,从而创建一个新会话。

设置过期时间的一种方法是在 web.config 中,您也可以通过转到网站属性 -> IIS 中进行设置。 主目录选项卡 -> 配置按钮 -> 选项选项卡 -> 会话超时。

您将无法访问其他人的会话数据。

Session is generally handled by generating a unique identifier as a cookie on the clients machine. This is usually a session cookie, so you can't easily get to it. When you visit a site that uses sessions, it looks for this cookie. If it doesn't find it, it creates a new one, thus creating a new session.

One way to set the expire time is in the web.config, you can also set it in IIS by going to your website properties -> Home directory tab ->Configuration button -> Options Tab -> Session Timeout.

You will not be able to access someone elses session data.

故事还在继续 2024-07-30 18:34:48
  1. 会话启动是因为请求不包含会话 cookie 或者它包含的会话 cookie 不再映射到会话。 会话以 a) 处于空闲状态而结束,在超时期间没有进一步的请求引用它。 b) 它被代码故意中止。 c) 当进程终止时,进程内会话终止,例如当应用程序被回收时。

  2. 更改超时的不同方法基本上是修改 web.config 或继承该值的配置文件。

    更改超时的不同方法

  3. 除非代码故意将会话

  1. Session starts because the request does not contain a session cookie or the session cookie it does contain no longer maps to a session. A session ends by a) it has sat idle with no further requests referencing it for the timeout period. b) Its deliberately aborted by code. c) In-process session dies when the process does, e.g. when the app is recycled.

  2. Different ways to change the timeout are basically modifing the web.config anyway or a config file from which the value is inherited.

  3. Not unless the session object is deliberately placed by code somewhere that another session can access it.

森罗 2024-07-30 18:34:48

您可以通过编程方式设置会话超时:

Session.Timeout = 60; 

You can set session timeout programatically with:

Session.Timeout = 60; 
上课铃就是安魂曲 2024-07-30 18:34:48

也不要忘记 AppPool 设置...默认情况下(无论如何 IIS 6)它将每 120 分钟回收一次。 因此,有人可能会在小于设置的 Session_Timeout 值的时间内丢失会话。

Don't forget the AppPool settings too...by default (IIS 6 anyway) it will recycle every 120 minutes. So it's possible that someone could lose their session in less than the set Session_Timeout value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文