当它';s未在配置中设置

本文关键字:配置 设置 当它 | 更新日期: 2023-09-27 18:23:44

我正在实现我自己的会话提供程序,想知道是否在会话提供程序中自动设置了默认值20分钟?无论配置文件中是否有条目,都会提供此值吗?

如果不是,我的会话提供者应该从另一个位置获得它吗?

当它';s未在配置中设置

我在全局配置文件中找不到值,但它是在某个地方定义的。

使用以下代码,您可以获得会话超时值,无论它是否在本地web.config中定义。

Configuration conf = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
SessionStateSection section = (SessionStateSection) conf.GetSection("system.web/sessionState");
int timeout = (int) section.Timeout.TotalMinutes;

尝试使用:

System.Int64 timeout = System.Web.HttpContext.Current.Session.Timeout; // The time-out period, in minutes

在Global.asax中,您可以设置

会话超时

在Session_Start中,或将其设置在代码中的其他位置。

http://msdn.microsoft.com/en-us/library/aa478952.aspx

根据我上面链接的文章,如果没有在任何地方设置Timeout值,则将使用默认值20分钟。自定义提供程序和内置提供程序似乎都是这样。

您只需使用Session.Timeout即可获得值