特定の .NET 信頼レベルでアセンブリに完全な信頼を設定しようとしています (このアセンブリは、SharePoint の一部の Web アプリケーションで実行されます)。CasPol.exe を使用してこれが可能であることはわかっていますが、別の実行可能ファイルではなく、API のみを使用して実行したいと考えています。
詳細:
- IIS → サイトの下に、「MySite」があります。
- "MySite" → ASP.NET → .NET Trust Levels → 選択した信頼レベルは "WSS_Minimal" (および構成ファイルへのパス) です。
次のようにxml構成ファイルを編集すると:
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust">
IMembershipCondition class="UrlMembershipCondition" version="1"
Url="C:\PathToMyAssembly\MyAssembly.dll" />
</CodeGroup>
次に、アプリケーション プールをリサイクルします。DLL が "WSS_Minimal" 信頼レベルを使用する Web アプリケーションに読み込まれると、アセンブリが完全に信頼されることがわかります。
C# API のみを使用してこの方法を繰り返すにはどうすればよいですか?
主な項目は3つです。
- アセンブリに完全な信頼を特定の事前定義された信頼レベルに付与します。
- 「私はすでにそれを行った」かどうか、つまり、すでに許可されているかどうかを確認します。
- これを削除する (たとえば、製品をアンインストールするとき)
この API を使用するのが適切な場所のようですが、ポリシーを列挙したときに、探していた xml に到達しませんでした -
var levelEnumerator = SecurityManager.PolicyHierarchy();
while (levelEnumerator.MoveNext())
{
}