什么是在C#中检测ASP.NET会话是否启用的最佳方法?我不想使用try-catch块,Sessions!= null会抛出异常。祝好。
如果您使用 HttpContext.Current
,将不会发生异常:
if(HttpContext.Current.Session != null)
{
// Session!
}
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)
对于 .NET 6,您可以使用以下内容:
if (HttpContext.Features.Get<ISessionFeature>()?.Session != null)
{
}
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
}
Page.Session
抛出异常,但HttpContext.Session
不会。 - Markus Jarderot