次の方法で共有


方法 : 部分信頼コードへの APTCA アセンブリのアクセスを禁止する

更新 : 2007 年 11 月

AllowPartiallyTrustedCallersAttribute (APTCA) 属性を使用すると、部分的に信頼されたコードが、署名付きのアセンブリ内の完全に信頼されるコードにアクセスできるようになります。アセンブリに APTCA 属性を適用すると、アセンブリが有効である間は部分信頼の呼び出し元を許可するようにアセンブリがマークされます。アセンブリに APTCA 属性を適用した後、保護されたリソースを部分信頼コードに対して公開すると、セキュリティ上の脆弱性が生じます。この問題を解決するには、そのアセンブリの APTCA 属性を無視するように指示するレジストリ値を設定します。

Bb397854.alert_caution(ja-jp,VS.90).gif重要 :

アセンブリから部分信頼を削除する機能は、次の手順で説明するように、レジストリ キーに依存します。アプリケーションが、該当のレジストリ キーへのアクセスについてアクセス制御リスト (ACL: Access Control List) アクセス許可を持っていないアカウントで実行されている場合、その設定は無効となり、部分信頼の呼び出し元はアセンブリにアクセスできるようになります。これは、予期しない権限の昇格が行われる原因となります。ACL アクセス許可を構成し、すべてのアセンブリ用に読み取ることができるようにキーを設定する必要があります。

アセンブリから部分信頼を削除するには

  1. システム レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA キー下にキーを作成します。キーには、アセンブリの厳密な名前情報を含む名前を使用します。名前には、簡易名、バージョン番号、カルチャ ("neutral" に設定します)、公開キー トークン、およびアセンブリのファイル バージョンを含めることが必要です。たとえば、有効なキーとして HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0 が例として挙げられます。

  2. APTCA_FLAG という名前で DWORD 値を作成し、値に 1 を設定すると、アセンブリから部分信頼の参照範囲が削除されます。