程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 代碼組(3) 屬性

代碼組(3) 屬性

編輯:關於.NET

代碼組可以具有一些屬性,這些屬性可影響公共語言運行庫確定程序集允許的權限集的方式。可應用到代碼組的屬性有兩種:Exclusive和LevelFinal。

Exclusive屬性,策略級別允許的權限集是與具有此屬性的代碼組關聯的權限集。在考慮所有策略級別時,運行庫向代碼授予的權限絕對不會多於與Exclusive代碼組關聯的權限。在給定的策略級別內,代碼只能是具有Exclusive屬性的一個代碼組的成員。在運行庫計算獨占代碼組中的程序集的權限時,該屬性會防止考慮同一策略級別中的其他代碼組。但仍會計算當前級別之下和之下的策略級別。該屬性允許一個特定代碼組為當前策略級別針對向與該組匹配的程序集授予什麼權限的問題做出唯一決定。這在需要向特定程序集授予特定權限集而不允許來自同一策略級別上的其他代碼組匹配項的權限時很有用。

注意:如果一個程序集屬於多個標記為獨占的代碼組,則不允許執行該程序集。

LevelFinal屬性,在檢查代碼組成員和授予權限時,不會考慮包含此代碼組的策略級別以下的、應用程序域級別之外的其他任何策略級別。企業級策略是策略的最高級別,接著是計算機策略、用戶策略,然後是應用程序域策略。例如,如果LevelFinal屬性應用到企業級策略中的代碼組,且某代碼與此代碼組的成員條件匹配,那麼,計算機級別策略和用戶級別策略不會應用到該代碼。應用 LevelFinal屬性可以保證,與標有該屬性的代碼組關聯的程序集絕對不會因為較低策略級別管理員做出的決定而收到較少的權限。

可以用.NET Framework配置工具或者是代碼訪問安全策略工具針對代碼組開啟或關閉Exclusive(或LevelFinal)屬性。開啟代碼組Exclusive屬性的方法如下:

caspol -chggroup 1.2.1. -exclusive on

其中,使用chggroup命令更改標簽為1.2.1的代碼組,把Exclusive屬性設置為開狀態。

---------------------注:本文部分內容改變自《.NET 安全揭秘》

作者:玄魂

出處:http://www.cnblogs.com/xuanhun/

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved