5

我试图确保我的 ASP.Net 库将在中等信任下工作。但是我遇到了问题,如果它在中等信任下运行,我需要禁用一些代码。

如何从 C# 确定当前应用程序是否为中等信任?

具体来说,我正在尝试从 web.config 读取 customErrors 部分,但我遇到了安全错误

4

1 回答 1

3

本文在这里描述了一种确定信任级别的机制:

找出 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;
}

我刚刚在一个在 Medium 上运行的 ASP.NET MVC3 应用程序中对其进行了测试,然后是完全信任,它按照它在锡上所说的做了。

于 2011-06-12T23:36:35.847 回答