【问题标题】:Session Time Out in Asp.net 4.0 on IIS 7.5IIS 7.5 上的 Asp.net 4.0 中的会话超时
【发布时间】:2012-10-06 05:07:16
【问题描述】:

我想为我的 Web 应用程序设置 12 小时的超时时间。

我已经在 web.config 文件中设置为:

<system.web>
     <sessionState timeout="720" />
</system.web>

如以下post中所建议的:

  • 我知道Application Pool 每 20 分钟循环一次(如果池是理想的)。
    我还使用关于 application pool timeout setting 的一个问题检查了更改应用程序池超时
  • session 超时仍未设置为 720 分钟。我是否需要更改 machine.config 文件以更改 session 超时。
    但我认为machine.config 文件的属性应该被web.config 文件覆盖。

请给我一些想法。

【问题讨论】:

  • 为什么要将会话保持 12 小时?这就像让某人占用一个停车位 5 分钟,然后保留 12 小时以防他们可能会回来。很快,你所有的位置都被填满了,没有人可以停车。
  • 客户要求。他们有任何客户都可以来查看应用程序的机器。所以密码是客户而不是客户。所以我需要将会话时间保持 12 小时。希望这可以证明我的问题。或者你有什么其他的出路。
  • 您将身份验证与会话混淆了。会话与密码无关。如果您的身份验证 cookie 仍然有效,您的会话可能会过期或被重置并仍被授予访问该站点的权限。它们是两个独立的系统。会话用于存储用户当前状态,如果会话过期,设计合理的应用可以重新生成该状态。
  • 您是在谈论持久性 cookie。例如FormsAuthentication.SetAuthCookie('用户名', true);但是cookie的到期时间是多少。或者我可以手动配置身份验证 cookie。我的想法是否正确?
  • FormsAuthentication 是一种方式,是的。是的,您可以控制 cookie 的过期时间。

标签: asp.net iis-7.5 session-timeout


【解决方案1】:

你可以试试WMI(Windows Management Instrumentation)脚本,它可以帮助你。你需要有足够的权限来实现Script

以下是您可以查看的链接以获取更多信息。

http://bendera.blogspot.in/2010/12/configuring-ica-rdp-timeout-values.html

http://technet.microsoft.com/en-us/library/cc771956%28v=ws.10%29.aspx

【讨论】:

  • 谢谢 Abhinandy 我认为@mystereMan 是正确的,我必须寻找其他选项而不是增加会话时间。
【解决方案2】:

您应该设置以下所有内容:

应用程序池 / 高级设置。此处应以分钟为单位设置 Idle Timeout 选项。

然后在 system.web 部分的 web.config 文件中,您还应该设置 Authentication/FormsSessionStateRoleManager 超时(如果适用)。


<authentication mode="Forms"><forms loginUrl="~/default.aspx" name=".ASPXFORMSAUTH" timeout="120" /></authentication>

<sessionState cookieless="AutoDetect" cookieName="TYS_ADMIN_SessionId" timeout="120" />

<roleManager ... cookieTimeout="120" defaultProvider="GMRoleProvider" enabled="true">...</roleManager>

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 2012-07-09
    • 1970-01-01
    • 2011-01-23
    • 2011-04-11
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多