ロール ベース セキュリティ
.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