如何判断当前应用是不是为Medium Trust

Posted

技术标签:

【中文标题】如何判断当前应用是不是为Medium Trust【英文标题】:How to determine if the current application is Medium Trust如何判断当前应用是否为Medium Trust 【发布时间】:2011-09-13 14:21:53 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

Finding out the current trust level in 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 应用程序中对其进行了测试,然后完全信任它,它会按照它所说的那样做。

【讨论】:

我想如果你只在Application_Start 时间做一次,那么在伟大的计划中这并不是一件大事。问题在于,您拥有的信任越少,您可以尝试的事情就越少,而这是您可以在所有信任级别下尝试的唯一一件事。

以上是关于如何判断当前应用是不是为Medium Trust的主要内容,如果未能解决你的问题,请参考以下文章

如何判断当前线程是不是正在模拟?

判断一个变量是不是为数组

如何判断当前时间是不是在一个时间段内?

98. 验证二叉搜索树 - medium

jquery 判断当前时间是不是在时间范围内

Android 在当前WebView打开页面,判断是不是有