ASP.NET中使用哪个会话超时?

时间:2011-11-23 08:13:58

标签: asp.net iis session-timeout

在ASP.NET中,您可以在几个地方设置会话超时:

web.config:

<authentication mode="Forms">
    <forms loginUrl="Login" defaultUrl="Index" timeout="480"/>
</authentication>

<sessionState timeout="480"  />

在IIS中。

何时使用会话超时?

2 个答案:

答案 0 :(得分:4)

 <forms loginUrl="Login" defaultUrl="Index" timeout="480"/>
  • 是身份验证cookie的超时,这意味着在登录后您有480分钟,直到您再次被重定向到登录页面(如果您使用滑动过期,它会稍微改变一下)。

<sessionState timeout="480" />

  • 是Session对象的超时,因此如果您在Session [“object”]中存储了某些内容,则在480分钟不活动后,这将无法使用。
  • 如果会话超时小于登录超时,则在访问Session [“object”]时可能会获得NullReferenceException

答案 1 :(得分:2)

由于您尚未说明您正在使用的IIS版本,但假设这是IIS7或更高版本。

基本上如果你在配置中定义一个显式值,那将是使用的。在IIS 7或更高版本中,通过IIS控制台设置此值也将更新您的配置文件,在IIS 6中它使用元数据库。

在您自己的网站配置文件中明确设置值将始终覆盖IIS中的设置,除非在applicationHost.config中的功能上禁用了委托,如果您在本地设置它将引发错误。

您可以通过创建一个空的ASP.NET网站并部署到IIS来测试它。您会看到它的配置文件中没有会话超时设置,因此您将使用服务器设置。将会话超时更新为IIS中的默认值以外的值,您现在将看到特定部分已添加到您的web.config文件中,因此现在是使用的值。

有关IIS7 + here

中的设置和配置管理的更多信息