得到 ASP.NET 当前的 Trust Level,摘自:dmitryr's blog

  1. AspNetHostingPermissionLevel GetCurrentTrustLevel() {  
  2.     foreach (AspNetHostingPermissionLevel trustLevel in 
  3.             new AspNetHostingPermissionLevel [] {  
  4.                 AspNetHostingPermissionLevel.Unrestricted,  
  5.                 AspNetHostingPermissionLevel.High,  
  6.                 AspNetHostingPermissionLevel.Medium,  
  7.                 AspNetHostingPermissionLevel.Low,  
  8.                 AspNetHostingPermissionLevel.Minimal   
  9.             } ) {  
  10.         try {  
  11.             new AspNetHostingPermission(trustLevel).Demand();  
  12.         }  
  13.         catch (System.Security.SecurityException ) {  
  14.             continue;  
  15.         }  
  16.    
  17.         return trustLevel;  
  18.      }  
  19.  
  20.      return AspNetHostingPermissionLevel.None;  

本日志由 Loveyuki 于 2008-07-14 22:59 发表,目前已经被浏览 3283 次,评论 3 次;

作者添加了以下标签: ASP.NET

引用通告:http://blog.loveyuki.com/Article/89/Trackback.ashx

评论订阅:http://blog.loveyuki.com/Article/89/Feeds.ashx

评论列表

  1. 2008-07-15 08:48 | # | 回复
    嗯!好文!昨天发mail给你了,请帮忙看看分析一下。
  2. 2009-12-26 14:23 | # | 回复
    if (SecurityManager.IsGranted(new AspNetHostingPermission(AspNetHostingPermissionLevel.Medium)))

    不需要catch异常,性能会好一些。

    参考链接:
    http://www.netomatix.com/development/webcaspermissions.aspx
  3. Gravatar
    Loveyuki
    2009-12-26 17:34 | # | 回复
    @老达 嗯,他这个方法是根据各种权限的具体分配判断的,性能应该会好一些。不过做的判断也多了。获取 Trust Level 一般只是在需要的时候运行一次,所以为了方便那些损失我直接忽略不计了。呵呵!
(必填)
(必填,不会被公开)