次の方法で共有


ロール ベース セキュリティ

.NET Framework は、マネージ コードを COM+ のセキュリティ サービスと統合するための機構を備えています。この機能は、実行コードに関連付けられた Microsoft® Windows NT® トークンを ID のベースとして使用します。

メモ   .NET Framework および COM+ のロール ベースのセキュリティ機構は、それぞれ独立した機構です。1 つのアプリケーション内では一方の機構だけを使用できます。

COM+ セキュリティでは、Windows NT アカウントとプロセスおよびスレッドの偽装が使用されます。マネージ コードで認証サービスを提供する場合は、COM オブジェクトを呼び出す前に、Windows NT セキュリティ トークンを取得し、偽装する必要があります。

アプリケーションにロールを追加し、System.EnterpriseServices.ServicedComponent クラスから派生させたクラスに SecurityRoleAttribute 属性を適用することにより、それらのロールをコンポーネントに関連付けることができます。この属性をアセンブリ全体に適用すると、ロールが COM+ カタログに登録されます。この属性をコンポーネントに適用した場合は、ロールはアプリケーション構成に格納され、対象コンポーネントがそのロールに関連付けられます。

SetEveryoneAccess プロパティを true に設定すると、ロール Everyone がメンバとして追加されます。既定値は false です。この値は、ロールにユーザーが割り当てられていないことを示します。その場合は、手動でユーザーを設定する必要があります。この方法は、システム全体を広範囲に制御する管理者ロールにとって便利です。

セキュリティ ロールは、アセンブリ、クラス、メソッド、インターフェイスの各レベルでサポートされます。他のメソッド属性の場合と同様に、セキュリティ設定は、現在のところ、インターフェイス定義とメソッド実装の間で共有されません。

SecurityCallContext クラスは、COM+ セキュリティ呼び出しコンテキストへのアクセスを提供します。Visual Basic の SecurityCallContext オブジェクトに似ていますが、同じではありません。新しいインスタンスは、プログラムで作成するのではなく、CurrentCall プロパティを通じて取得します。その他のプロパティ (次の表で説明します) は、SecurityCallContext オブジェクトのメソッドを呼び出します。

プロパティ 解説
Callers COM+ の SecurityCallContext オブジェクトから Callers 項目を取得し、その項目を SecurityCallers オブジェクトとして返します。
CurrentCall 現在の呼び出しに関連付けられている SecurityCallContext オブジェクトへの参照を返します。
DirectCaller COM+ の SecurityCallContext オブジェクトから DirectCaller 項目を取得し、その項目を SecurityIdentity オブジェクトとして返します。
MinAuthenticationLevel COM+ の SecurityCallContext オブジェクトから MinAuthenticationLevel 項目を取得します。
NumCallers COM+ の SecurityCallContext オブジェクトから NumCallers 項目を取得します。
OriginalCaller COM+ の SecurityCallContext オブジェクトから OriginalCaller 項目を取得し、その項目を SecurityIdentity オブジェクトとして返します。

参照

利用可能な COM+ サービスの概要 | SecurityRoleAttribute クラス | System.EnterpriseServices