一連の証拠について、コード グループおよびその子孫のポリシーを解決します。
Overrides Public Function Resolve( _
ByVal evidence As Evidence _) As PolicyStatement
[C#]
public override PolicyStatement Resolve(Evidenceevidence);
[C++]
public: PolicyStatement* Resolve(Evidence* evidence);
[JScript]
public override function Resolve(
evidence : Evidence) : PolicyStatement;
パラメータ
- evidence
アセンブリの証拠。
戻り値
オプションの属性を持つコード グループによって与えられたアクセス許可から成るポリシー ステートメント。コード グループがポリシーを適用しない (指定した証拠とメンバシップ条件が一致しない) 場合は null 参照 (Visual Basic では Nothing) 。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | evidence パラメータが null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | 複数のコード グループ (親コード グループと子コード グループを含む) が Exclusive とマークされています。 |
解説
読み込まれるアセンブリの証拠が指定されている場合、このメソッドは、まず指定した証拠に対してメンバシップ条件を調べることによってコード グループを評価します。両者が一致した場合、このメソッドは、子コード グループの評価を含む、コード グループのポリシー ステートメントを返します。
ユニオン コード グループの場合は、メンバシップ条件が証拠と一致するすべての子コード グループも解決され、結果として得られるすべてのポリシー ステートメントと、親ユニオン コード グループのポリシー ステートメントとの和集合が形成されます。各子コード グループの型によって、それらの子コード グループの Resolve メソッドの動作に応じて、さらにその下の子コード グループをどのように適用するかが決まります。
.NET Framework セキュリティ システムは、ポリシー レベルで Resolve を使用して、結果として得られるポリシー ステートメントから、およびアセンブリのコード要求から読み込まれたコードに与えるアクセス許可を決定します。
このメソッドは、次のように動作します。
メンバシップ条件が指定した証拠と一致しない場合は、 null 参照 (Visual Basic では Nothing) を返します。それ以外の場合は、コード グループのポリシー ステートメントと等しい (P) が返されるようにアクセス許可セットを設定し、処理を続行します。子コード グループごとに、同じ証拠を使用してそのコード グループが解決されます。結果が null 参照 (Nothing) でない場合は、"P = P および子コード グループのポリシー ステートメントの和集合" に設定されます。P を返します。P は、現在のコード グループのポリシー ステートメントとすべての子の解決されたポリシー ステートメントの和集合を表します。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
UnionCodeGroup クラス | UnionCodeGroup メンバ | System.Security.Policy 名前空間