问题描述
|
我正在尝试确保我的ASP.Net库将在“中等信任”下工作。但是,我遇到的问题是,如果代码在中等信任度下运行,则需要禁用一些代码。
如何从C#确定当前应用程序是否为中等信任度?
具体来说,我正在尝试从web.config中读取customErrors部分,并且遇到安全性错误
解决方法
本文在此介绍一种确定信任级别的机制:
在ASP.NET中找出当前的信任级别
这是防止链接消失的代码:
AspNetHostingPermissionLevel GetCurrentTrustLevel() {
foreach (AspNetHostingPermissionLevel trustLevel in
new AspNetHostingPermissionLevel [] {
AspNetHostingPermissionLevel.Unrestricted,AspNetHostingPermissionLevel.High,AspNetHostingPermissionLevel.Medium,AspNetHostingPermissionLevel.Low,AspNetHostingPermissionLevel.Minimal
} ) {
try {
new AspNetHostingPermission(trustLevel).Demand();
}
catch (System.Security.SecurityException ) {
continue;
}
return trustLevel;
}
return AspNetHostingPermissionLevel.None;
}
我只是在ASP.NET MVC3应用程序中对它进行了测试,该应用程序在Medium中运行,然后在Full Trust中运行,它确实做到了。