Определите, включены ли сеансы ASP.NET - PullRequest
4 голосов
/ 26 августа 2009

Каков наилучший способ выполнить логический тест в C #, чтобы определить, включены ли сеансы ASP.NET? Я не хочу использовать блок try-catch и Sessions! = Null создает исключение.

Привет.

Ответы [ 4 ]

4 голосов
/ 26 августа 2009

Вы не получите исключение, если используете HttpContext.Current:

if(HttpContext.Current.Session != null)
{
    // Session!
}
2 голосов
/ 26 августа 2009

Вы хотите запросить свойство EnableSessionState в Web.config.

1 голос
/ 01 августа 2013

Вот как вы можете определить, включено ли состояние сеанса:

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)
0 голосов
/ 27 августа 2009

Вы можете использовать что-то вроде этого (псевдокод)

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...