FirstMatchCodeGroup.Resolve(Evidence) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
解析程式碼群組的原則和其辨識項集合的子代。
public:
override System::Security::Policy::PolicyStatement ^ Resolve(System::Security::Policy::Evidence ^ evidence);
public override System.Security.Policy.PolicyStatement Resolve (System.Security.Policy.Evidence evidence);
override this.Resolve : System.Security.Policy.Evidence -> System.Security.Policy.PolicyStatement
Public Overrides Function Resolve (evidence As Evidence) As PolicyStatement
參數
- evidence
- Evidence
組件的辨識項。
傳回
原則陳述式,包含由程式碼群組使用選擇性屬性授與的使用權限,或為 null
,如果程式碼群組無法套用 (成員資格條件不符合指定的辨識項)。
例外狀況
evidence
參數為 null
。
一個以上的程式碼群組 (包含父程式碼群組和任何的子程式碼群組) 標記為 Exclusive。
範例
下列程式碼示範如何使用 Resolve 方法來解析程式代碼群組的原則。 此程式碼範例是針對 類別提供的較大範例的 FirstMatchCodeGroup 一部分。
Assembly^ assembly = Members::typeid->Assembly;
Evidence^ executingEvidence = assembly->Evidence;
PolicyStatement^ policy = codeGroup->Resolve( executingEvidence );
Assembly assembly = typeof(Members).Assembly;
Evidence executingEvidence = assembly.Evidence;
PolicyStatement policy = codeGroup.Resolve(executingEvidence);
Dim executingAssembly As [Assembly] = Me.GetType().Assembly
Dim executingEvidence As Evidence
executingEvidence = executingAssembly.Evidence
Dim policy As PolicyStatement = codeGroup.Resolve(executingEvidence)
備註
針對要載入之元件的指定辨識項,此方法會先根據指定的辨識項檢查成員資格條件,以評估程式碼群組。 如果有相符專案,這個方法會傳回程序代碼群組的原則語句,包括評估副程式代碼群組。
針對第一個相符的程式碼群組,每個副程式代碼群組的成員資格條件都會根據新增的順序來測試辨識項;只會使用辨識項集解析第一個相符專案。 如果沒有相符專案,則會套用父系第一個比對程式碼群組的原則語句。 相符的副程式代碼群組類型會根據這些子群組的方法運作方式,決定其下的所有子群組如何 Resolve 套用。
.NET Framework安全性系統會使用 Resolve 原則層級來決定要授與所產生原則語句中載入之程式碼的許可權,以及元件上的程式碼要求。
此方法的這項作業如下所示:
如果成員資格條件與指定的辨識項不相符, null
則傳回 ;否則,將許可權集合設定為傳回 (P) 等於程式碼群組的原則語句並繼續。 針對每個副程式代碼群組,使用相同的辨識項解析程式代碼群組;如果結果不是 null
,則傳回該原則語句。 如果沒有相符的副程式代碼群組,) 傳回 P (父系的原則語句。