アクセス許可
更新 : 2007 年 11 月
共通言語ランタイムでは、コードが実行できる操作を、実行するためのアクセス許可をそのコードが持つ操作だけに限定します。ランタイムはアクセス許可と呼ばれるオブジェクトを使用して、マネージ コードに制限を課すための機構を実装します。アクセス許可の主な用途は次のとおりです。
コードは、コードがその時点で必要とするアクセス許可、または必要に応じて使用できるアクセス許可を要求できます。.NET Framework セキュリティ システムは、要求されたアクセス許可を与えるかどうかを決定します。要求されたアクセス許可は、コードの証拠がそれらのアクセス許可を与える条件を満たすときにだけ与えられます。コードは、要求に応じて現在のセキュリティ設定で許可される以上のアクセス許可を得ることはありません。要求に応じて、より少ないアクセス許可が与えられます。
ランタイムは、コードの ID の特性、要求されたアクセス許可、およびコードの信頼度 (管理者が設定するセキュリティ ポリシーによって決まります) に基づいて、コードに許可を与えます。ランタイムが与えるアクセス許可をどのように決定するかについては、「セキュリティ ポリシー」と「アクセス許可の付与」を参照してください。
コードは、コードの呼び出し元が特定のアクセス許可を持つことを要求できます。コードに特定のアクセス許可の要求を設定すると、そのコードを使用するすべてのコードは、実行するときにその許可が必要になります。
アクセス許可には次の 3 種類があり、それぞれ固有の目的を持ちます。
コード アクセス許可は、保護されているリソースにアクセスしたり、保護された操作を実行できることを表します。
ID アクセス許可は、特定の種類の ID をサポートする資格情報をコードが持っていることを示します。
ロール ベース セキュリティ アクセス許可は、ユーザー (またはユーザーの代わりとなるエージェント) が特定の ID を持っているかどうか、または指定されたロールのメンバかどうかを確認するための機構を提供します。PrincipalPermission は、唯一のロール ベース セキュリティ アクセス許可です。
ランタイムは、いくつかの名前空間の中に組み込み許可クラスを用意する他、カスタムのアクセス許可クラスをデザインおよび実装するためのサポートを提供します。