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

代碼組(1) 對代碼組的管理

編輯:關於.NET

代碼組為我們提供了通過配置方式來實現代碼訪問安全性的途徑。通過代碼訪問安全性策略工具——Caspol.exe,可以創建、刪除、更改代碼組。

代碼組實質是一個條件表達式和一個權限集。如果程序集滿足該條件表達式,那麼就會被授予該權限集。每個策略級別的代碼組集是按樹的形式組織的。

代碼組同時可以通過屬性來說明如何定義安全策略。

對代碼組的管理可以使用兩個工具,一個是.NET Framework配置工具,一個是Caspol.exe。為了演示這兩個工具的使用,對代碼組的查看采用Caspol.exe,從命令行操作;對代碼組的創建、修改和刪除,使用.NET Framework配置工具從圖形界面來操作。

查看代碼組

首先啟動Visual Studio Command Prompt(2010),然後從該命令行啟動訪問安全性策略工具Caspol.exe。可以在命令行輸入“-?”來查看Caspol.exe的命令幫助,如圖1-1所示。

圖1-1 查看Caspol.exe的命令幫助

接下來,使用代碼清單1-1的命令來查看不同策略級別下的代碼組。

代碼清單1-1  查看不同策略級別下的代碼組

//查看公司級別的代碼組
    
caspol –enterprise –listgroups
    
//查看計算機級別的代碼組
    
caspol –machine –listgroups
    
//查看用戶級別的代碼組
    
caspol –user –listgroups
    
//查看所有級別的代碼組
    
caspol –all –listgroups
    
//查看默認級別的代碼組
    
caspol  –listgroups

圖1-2顯示了查看計算機級別下的代碼組的結果。

圖1-2  查看計算機級別下的代碼組

注意:若使用Caspol.exe 列出處於默認策略級別的代碼組,對於計算機管理員,默認級別是計算機策略級別;對於其他人員,默認級別是用戶策略級別。

代碼清單1-2列出了查看一個策略級別下的代碼組名稱和說明的命令。

代碼清1-2 查看一個策略級別下的代碼組名稱和說明

//查看公司級別下的代碼組名稱和說明

caspol –enterprise –listdescription

//查看計算機級別下的代碼組名稱和說明

caspol –machine –listdescription

//查看用戶級別下的代碼組名稱和說明

caspol –user –listdescription

//查看所有級別下的代碼組名稱和說明

caspol –all –listdescription

//查看默認級別下的代碼組名稱和說明

caspol  –listdescription

代碼清單1-3是執行查看用戶級別下的代碼組名稱和說明的命令結果。

代碼清單1-3  查看用戶級別下的代碼組名稱和說明

D:\Program Files\Microsoft Visual Studio 10.0\VC>caspol -user -listdescription

Microsoft (R) .NET Framework CasPol 4.0.21006.1

Copyright (c) Microsoft Corporation.  All rights reserved.

Policy change prompt is ON

Level = User

Code Groups:

1. All_Code: Code group grants all code full trust and forms the root of the code group tree.

Success

創建代碼組

啟動Mscorcfg.msc,展開運行庫安全策略,可以看到各個安全級別下的配置內容,如圖1-3所示。

圖1-3啟動Mscorcfg.msc

以計算機級別為例來添加代碼組,首先展開整個代碼組樹,查看已經存在的代碼組,如圖1-4所示。

圖1-4  查看已經存在的代碼組

可以在任何一個代碼組下選擇新建它的子代碼組,填寫代碼組名稱和說明,如圖1-5所示。

圖1-5  創建代碼組

然後單擊“下一步”,選擇代碼組條件類型,如圖1-6所示。

圖1-6 選擇代碼組條件類型

對於代碼組條件類型,有以下幾種選擇:

1)所有代碼(All Code)。此成員條件對於依據此條件的所有程序集均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

2)應用程序目錄。對於位於正運行的應用程序的同一目錄或子目錄中的所有程序集,“應用程序目錄”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

3)GAC。對於GAC安裝的所有程序集,GAC成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

4)哈希。對於匹配MD5或者SHA1算法的所有程序集,則“哈希”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

5)發行者。如果程序集使用了與指定的發行者證書匹配的證書進行了數字簽名,則“發行者”成員條件為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

6)站點。對於來自指定站點名稱的程序集,“站點”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

7)強名稱。對於強名稱,符合我們指定的強名稱的程序集,“強名稱”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

8)URL。對於源自指定URL的所有程序集,“URL”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。

9)區域。對於源自指定區域的所有程序集,“區域”成員條件均為True。滿足此條件的程序集都將被授予此代碼組關聯的權限。區域為Internet、Intranet、我的電腦、受信任站點和不受信任站點中的一個。

10)自定義。可以將成員條件定義在XML文件中,然後導入。

選擇成員條件之後,要決定是選擇現有的權限集還是創建新的權限集,如圖1-7所示。

圖1-7  選擇使用權限集的方式

選擇創建新權限集,然後指定它的名稱和說明,也可以導入定義好的權限集,如圖1-7所示。

圖1-7 指定權限集的名稱和說明。

查看本欄目

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