我使用VS 2012和ASP.NET 4.5。
如何在C#中启用 旧版CAS模型 programmatically
(在ASP.NET 2.0中执行我的代码 - CLR 2.0和ASP。 NET 4.5(CLR 4.0)?以及级别?
<system.web>
<trust legacyCasModel="true" level="Full"/>
</system.web>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
答案 0 :(得分:2)
您可以在 web 应用程序中通过以下代码阅读它(我已经在.Net 4.7.1和VS 2017中对其进行了测试):
using System.Web.Configuration;
var trustsection = ((System.Web.Configuration.TrustSection)
WebConfigurationManager.GetSection("system.web/trust"));
bool isLegacyCasModel = trustsection.LegacyCasModel;
string level = trustsection.Level;
对于控制台应用程序,我只是以这种方式发现的(我相信这不是完美的):
注意:我假设您以以下方式启用了CAS策略,如果您使用NetFx40_LegacySecurityPolicy
标签进行设置,则可以分别更改代码)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<legacyCasPolicy enabled="true" />
</runtime>
</configuration>
因此,c#代码为:
var xml = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).GetSection("runtime").SectionInformation.GetRawXml();
var doc = new XmlDocument();
doc.LoadXml(xml);
bool isCasMode = doc.GetElementsByTagName("legacyCasPolicy")?[0]?.Attributes?["enabled"]?.Value == "true";