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

fcipmucu  于 2023-03-04  发布在  .NET
关注(0)|答案(5)|浏览(135)

在C#中做布尔测试来确定ASP.NET会话是否被启用的最好方法是什么?我不想使用try-catch块和Sessions!= null抛出异常。
问候。

jm2pwxwz

jm2pwxwz1#

如果使用HttpContext.Current,则不会出现异常:

if(HttpContext.Current.Session != null)
{
    // Session!
}
gev0vcfq

gev0vcfq2#

您希望查询Web.config中的EnableSessionState属性。

rryofs0p

rryofs0p3#

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

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)
carvr3hs

carvr3hs4#

您可以使用类似这样的代码(伪代码)

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
}
yyyllmsg

yyyllmsg5#

对于dot net 6,您可以用途:

if (HttpContext.Features.Get<ISessionFeature>()?.Session != null)
{
}

相关问题