我需要为我的 ASP.NET 网站用户提供一种方法来控制他们的 session 超时。
我正在使用 FormsAuthenticationTicket
和 cookies
。
我想为用户提供一种方法来指定 session 保持事件状态的时间。范围可以从几分钟到 1 天甚至更长时间不等。
我正在使用 idleTimeout
(我问了一个问题 here)。
此外,我将用户输入的值保存在数据库中,并使用该值初始化 FormsAuthenticationTicket
。
我还有 2 个问题:应用程序池和 cookie。我的网站在专用的应用程序池下运行。我是否也需要更改应用程序池的 idleTimeout
属性?当然,不是以编程方式。
总而言之,我的问题是:无论什么时间间隔,都需要进行哪些其他设置才能动态设置 session 过期并正常工作?
谢谢。
编辑:我在 Windows Server 2008 机器上使用 IIS7。
最佳答案
让 session 超时永远都不是一个好主意,因为这会使服务器上的某些资源一直处于繁忙状态,而且如果您的 Web 应用程序被许多不同的用户访问,这可能会影响服务器性能。
无论如何,您可以使用以下代码以编程方式更改 session 超时
Session.TimeOut= [=nMinutes]
请记住 session 超时应小于应用程序池空闲超时,因此如果您增加 session 超时,您也必须增加应用程序空闲超时。否则,应用程序将被回收。如果应用程序被回收, session 将自动过期。
允许的最小值为 1 分钟,最大值为 1440 分钟。
关于c# - 用户驱动的 session 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149793/