确定是否启用了ASP.NET会话

时间:2009-08-26 18:52:38

标签: c# asp.net session

在C#中进行布尔测试以确定是否启用了ASP.NET会话的最佳方法是什么?我不想使用try-catch块而Sessions!= null会抛出异常。

问候。

4 个答案:

答案 0 :(得分:4)

如果您使用HttpContext.Current

,则不会出现例外情况
if(HttpContext.Current.Session != null)
{
    // Session!
}

答案 1 :(得分:2)

您想询问Web.config中的EnableSessionState属性。

答案 2 :(得分:1)

以下是如何确定会话状态是否已启用的方法:

PagesSection pagesSection = ConfigurationManager.GetSection("system.web/pages") as PagesSection;

if ((null != pagesSection) && (pagesSection.EnableSessionState == PagesEnableSessionState.True))
    // Session state is enabled
else
    // Session state is disabled (or readonly)

答案 3 :(得分:0)

你可以使用这样的东西(伪代码)

XmlDocument document = new XmlDocument();
document.Load("Web.Config"); 

XmlNode pagesenableSessionState = document.SelectSingleNode("//Settings[@Name = 'pages']/Setting[@key='enableSessionState']");

if(pagesenableSessionState .Attributes["value"].Value =="true)
{
//Sessions are enabled
}
else
{
//Sessions are not enabled
}