IObjectContext::IsCallerInRole メソッド (comsvcs.h)
オブジェクトの直接呼び出し元が、(直接またはグループの一部として) 指定されたロールにあるかどうかを示します。
構文
HRESULT IsCallerInRole(
[in] BSTR bstrRole,
[out] BOOL *pfIsInRole
);
パラメーター
[in] bstrRole
ロールの名前。
[out] pfIsInRole
呼び出し元が指定したロールにある場合は TRUE。そうでない場合は FALSE。 セキュリティが有効になっていない場合も、このパラメーターは TRUE に設定されます。
戻り値
このメソッドは、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
bstrRole パラメーターで指定されたロールは認識されたロールであり、pbIsInRole パラメーターで返されるブール値の結果は、呼び出し元がそのロールに含まれているかどうかを示します。 |
|
bstrRole パラメーターで指定されたロールが存在しません。 |
|
渡された 1 つ以上の引数が無効です。 |
|
予期しないエラーが発生しました。 これは、あるオブジェクトが IObjectContext ポインターを別のオブジェクトに渡し、もう一方のオブジェクトがこのポインターを使用して IsCallerInRole を呼び出した場合に発生する可能性があります。 IObjectContext ポインターは、最初に取得したオブジェクトのコンテキストの外部では有効ではありません。 |
解説
このメソッドを使用して、現在実行中のメソッドの直接呼び出し元が特定のロールに関連付けられているかどうかを判断します。 ロールは、特定の COM+ アプリケーション内のすべてのコンポーネントに対する特定のアクセス許可を持つユーザーまたはユーザーのグループを表すシンボリック名です。 開発者は、コンポーネントを作成するときにロールを定義し、ロールは展開時に個々のユーザーまたはグループにマップされます。
IsCallerInRole は、現在実行中のメソッドの直接呼び出し元にのみ適用されます。 (直接呼び出し元は、現在のサーバー プロセスを呼び出すプロセスです。これは、基本クライアント プロセスまたはサーバー プロセスのいずれかです)。 IsCallerInRole は、現在のメソッドが呼び出された呼び出しシーケンスを開始したプロセスや、そのシーケンス内の他の呼び出し元には適用されません。
IsCallerInRole は、呼び出すオブジェクトがクライアントのプロセスで実行されている場合に TRUE を返すので、IsCallerInRole を呼び出す前に IsSecurityEnabled を呼び出することをお勧めします。 セキュリティが有効になっていない場合、 IsCallerInRole は正確な結果を返しません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | comsvcs.h |