Share via


FirstMatchCodeGroup.Resolve(Evidence) 方法

定義

解析程式碼群組的原則和其辨識項集合的子代。

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

組件的辨識項。

傳回

PolicyStatement

原則陳述式,包含由程式碼群組使用選擇性屬性授與的使用權限,或為 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 (父系的原則語句。

適用於