IHttpUser::IsInRole メソッド

ユーザーが名前付きロールに対して承認されているかどうかを示す値を返します。

構文

virtual HRESULT IsInRole(  
   IN PCWSTR pszRoleName,  
   OUT BOOL* pfInRole  
) = 0;  

パラメーター

pszRoleName
[IN]ロールの名前を含む、null で終わる定数 Unicode 文字列へのポインター。

pfInRole
[OUT]によって指定されたpszRoleNameロールに対してユーザーが承認されているかどうかを示す へのポインターBOOL

戻り値

HRESULT。 有効な値を次の表に示しますが、これ以外にもあります。

定義
S_OK 操作が成功したことを示します。
E_NOTIMPL メソッドが実装されていないことを IsInRole 示します。

解説

SupportsIsInRole メソッドがIsInRole同じ IHttpUser ポインターで最初に を返すtrue場合にのみ、 メソッドを呼び出します。

戻り値は IsInRole 実装によって異なります。 ガイドラインとして次の情報を使用する必要がありますが、すべてのシナリオで正しくない場合があります。

  • 実装者が匿名認証をIHttpUser処理する場合、逆参照されたパラメーターは、パラメーターが NULL または空の場合pszRoleNameにのみ にtrue設定されますpfInRoleIsInRole 常にS_OKを返します。

  • 実装者が IHttpUser Basic、Certification Mapping、SSPI、または Custom 認証を処理する pfInRole 場合、パラメーターは変更されておらず、 IsInRole すぐにE_NOTIMPLを返します。

  • 実装者がマネージド認証を IHttpUser 処理する pfInRole 場合、パラメーターは変更されておらず、 IsInRole いずれかのパラメーターが NULL の場合は直ちにE_INVALIDARGを返します。 それ以外の場合 pfInRole 、 は に true設定され、 IsInRole ユーザーがロール内にある場合にのみS_OKを返します。

次のコード例では、応答ヘッダーと本文をクリアし、ユーザー情報を XML ドキュメントとしてクライアントに返す HTTP モジュールを作成する方法を示します。

上記のコードは、次のような XML を応答ストリームに書き込みます。

<?xml version="1.0" ?>  
<user supportsRoles="true" isInRole="false" />  

モジュールは RegisterModule 関数をエクスポートする必要があります。 この関数をエクスポートするには、プロジェクトのモジュール定義 (.def) ファイルを作成するか、スイッチを使用してモジュールを /EXPORT:RegisterModule コンパイルします。 詳細については、「 チュートリアル: ネイティブ コードを使用したRequest-Level HTTP モジュールの作成」を参照してください。

必要に応じて、各関数の呼び出し規約を __stdcall (/Gz) 明示的に宣言するのではなく、呼び出し規約を使用してコードをコンパイルできます。

要件

Type 説明
Client - Windows Vista 上の IIS 7.0
- Windows 7 上の IIS 7.5
- Windows 8 の IIS 8.0
- Windows 10の IIS 10.0
サーバー - Windows Server 2008 の IIS 7.0
- Windows Server 2008 R2 上の IIS 7.5
- Windows Server 2012 上の IIS 8.0
- Windows Server 2012 R2 上の IIS 8.5
- Windows Server 2016上の IIS 10.0
製品 - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0
- IIS Express 7.5、IIS Express 8.0、IIS Express 10.0
Header Httpserv.h

参照

IHttpUser インターフェイス