代碼組的成員條件決定哪些組件屬於該代碼組。每種條件對應一個實作 IMembershipCondition 介面的密封類別。本文系統整理所有 8 種標準成員條件的類別定義、屬性與適用場景。
所有條件類別均實作三個核心介面:
IMembershipCondition:Check(Evidence) 判斷組件是否符合ISecurityEncodable:ToXml()/FromXml() XML 序列化ISecurityPolicyEncodable:含策略層級上下文的 XML 序列化[Serializable, ComVisible(true)]
public sealed class AllMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
Check() 永遠回傳 true[Serializable, ComVisible(true)]
public sealed class ApplicationDirectoryMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
ApplicationDirectory 屬性指定目錄或其子目錄C:\app1 → 符合 C:\app1、C:\app1\main.aspx、C:\app1\folder1\main1.aspx[Serializable, ComVisible(true)]
public sealed class HashMembershipCondition : ISerializable, IDeserializationCallback, IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
ISerializable、IDeserializationCallbackHashAlgorithm、HashValue[Serializable, ComVisible(true)]
public sealed class PublisherMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
Certificate (X509Certificate)[Serializable, ComVisible(true)]
public sealed class SiteMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
https://www.example.com/path → www.example.comhttps://www.example.com:8000/ → 站台仍為 www.example.com*.example.com 匹配 www.example.com、api.example.com* 匹配所有有站台證據的代碼[Serializable, ComVisible(true)]
public sealed class StrongNameMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
Name:簡單名稱PublicKey:StrongNamePublicKeyBlobVersion:版本號[Serializable, ComVisible(true)]
public sealed class UrlMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
https://www.example.com/path/file.dllhttps://www.example.com/path/*Url (字串)[Serializable, ComVisible(true)]
public sealed class ZoneMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
MyComputer、Intranet、Internet、TrustedSites、UntrustedSitesSecurityZone (SecurityZone 列舉)# 將標籤 1.2.1 代碼組的區域條件設為 Internet
caspol -chggroup 1.2.1 -zone Internet
# 其他條件類似:-site、-url、-strongname、-hash、-publisher、-appdir、-all
| 條件 | 安全性 | 彈性 | 適用場景 |
|---|---|---|---|
| StrongName | 最高 (加密) | 低 (版本綁定) | 核心信任組件、高權限授予 |
| Publisher | 高 (憑證鏈) | 中 (同發行者所有版本) | 企業內部套件、ISV 產品 |
| Hash | 高 (內容綁定) | 極低 (逐版本更新) | 關鍵系統組件防竄改 |
| Url/Site | 中 (部署位置) | 高 (萬用字元) | 內部部署應用、Intranet 應用 |
| Zone | 低 (瀏覽器設定) | 高 (大範圍) | 預設安全性層級 |
| ApplicationDirectory | 中 | 中 | ClickOnce、XBAP 應用 |
作者:玄魂
出處:https://www.cnblogs.com/xuanhun/
查看本欄目