我目前正在实施自己的会话提供程序,并且想知道如果配置文件中的条目不存在,或者我的会话提供程序中是否设置了默认值20分钟会话提供者应该从其他地方获取它。
答案 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_Start中查看Session.Timeout
或将其设置在代码中的其他位置。