如果未在配置中设置会话提供程序,如何获取会话超时值?

时间:2012-02-06 16:05:06

标签: c# asp.net

我目前正在实施自己的会话提供程序,并且想知道如果配置文件中的条目不存在,或者我的会话提供程序中是否设置了默认值20分钟会话提供者应该从其他地方获取它。

5 个答案:

答案 0 :(得分:15)

我在全局配置文件中找不到该值,但它已在某处定义。

使用以下代码,无论是否在本地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;

答案 1 :(得分:6)

尝试使用:

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您可以使用Session.Timeout来获取值

答案 4 :(得分:0)

在Global.asax中,您可以设置

  

查看Session.Timeout

在Session_Start中

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