首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET 程式碼存取安全性:代碼組管理完整實戰 - Caspol 與組態工具操作指南

     編輯:關於.NET

前言

代碼組是 CAS 安全性策略的基本單位:條件表達式 + 權限集。組件滿足條件即授予權限。各策略層級代碼組以樹狀結構組織。本文實戰示範使用 Caspol.exe 與 .NET Framework 組態工具 (mscorcfg.msc) 進行代碼組的查看、建立、修改、刪除全流程操作。

Caspol.exe 命令列查看操作

啟動與說明

# 開啟 Visual Studio 命令提示字元
# 查看完整參數說明
caspol -?

列出各層級代碼組

# 企業層級
caspol -enterprise -listgroups

# 電腦層級 (最常用)
caspol -machine -listgroups

# 使用者層級
caspol -user -listgroups

# 所有層級
caspol -all -listgroups

# 預設層級 (管理員=電腦,一般用戶=使用者)
caspol -listgroups

電腦層級代碼組樹狀結構

注意:預設層級取決於執行身分。管理員預設為電腦層級,非管理員為使用者層級。

列出代碼組名稱與描述

caspol -machine -listdescription
caspol -user -listdescription
caspol -enterprise -listdescription
caspol -all -listdescription
caspol -listdescription

輸出範例

Level = User
Code Groups:
1. All_Code: Code group grants all code full trust and forms the root of the code group tree.
Success

.NET Framework 組態工具圖形化操作

啟動工具

# 命令列或執行對話框
mscorcfg.msc

Mscorcfg.msc 主視窗

建立代碼組完整步驟

  1. 展開「執行階段安全性原則」→ 選取目標層級 (如「電腦」)
  2. 展開代碼組樹,檢視現有結構

    現有代碼組樹

  3. 右鍵目標父代碼組 → 「新增子代碼組」

    建立代碼組精靈 - 名稱描述

  4. 輸入名稱與描述 → 下一步
  5. 選擇條件類型 (10 種)

    選擇條件類型

10 種條件類型完整說明

類型英文說明
所有代碼All Code無條件匹配所有組件
應用程式目錄Application Directory應用程式目錄及子目錄下的組件
GACGlobal Assembly Cache已安裝至 GAC 的組件
雜湊HashSHA1/MD5 雜湊值匹配的組件
發行者Publisher數位簽章憑證匹配的組件
站台Site來自指定網站的組件
強式名稱Strong Name強式名稱匹配的組件
URLURL來源 URL 匹配的組件
區域Zone來源安全性區域 (Internet/Intranet/我的電腦等)
自訂Custom從 XML 檔案匯入自訂條件

權限集選擇與建立

選擇權限集方式

  • 使用現有權限集:如 FullTrust、LocalIntranet、Internet、Everything、Nothing、Execution、SkipVerification
  • 建立新權限集:自訂精確權限組合

    指定權限集名稱描述

  • 匯入權限集:從 XML 檔案匯入

代碼組樹狀結構關鍵概念

  • 根代碼組:通常為 All_Code,FullTrust,所有代碼的祖先
  • 父子繼承:子代碼組權限受父代碼組限制 (交集)
  • 排序優先權:同層級代碼組按順序評估,後者可覆寫前者 (視屬性而定)
  • Exclusive/LevelFinal:特殊屬性改變評估邏輯 (詳見代碼組屬性篇)

管理工具選擇建議

操作推薦工具理由
查看/列舉Caspol.exe命令列輸出易於腳本化、記錄、比對
建立/修改/刪除mscorcfg.msc圖形化精靈降低錯誤、直觀樹狀編輯
自動化部署Caspol.exe可整合至建置腳本、群組原則
疑難排解兩者並用交叉驗證策略評估結果

查看本欄目

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved