RpcBindingInqAuthClientExA 関数 (rpcdce.h)

サーバー アプリケーションは RpcBindingInqAuthClientEx 関数を 呼び出して、リモート プロシージャ 呼び出しを行ったクライアント プログラムに関する拡張情報を取得します。

構文

RPC_STATUS RpcBindingInqAuthClientExA(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_CSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

パラメーター

ClientBinding

リモート プロシージャ 呼び出しを行ったクライアントのクライアント バインド ハンドル。 この値はゼロの場合があります。 「解説」を参照してください。

Privs

ClientBinding バインド ハンドルでリモート プロシージャ 呼び出しを行ったクライアント アプリケーションの特権情報へのハンドルへのポインターを返します。 ncalrpc 呼び出しの場合、Privs にはクライアントのプリンシパル名を持つ文字列が含まれます。

サーバー アプリケーションは 、Privs パラメーターを AuthnSvc パラメーターで指定されたデータ型にキャストする必要があります。 この引数によって参照されるデータは読み取り専用であり、サーバー アプリケーションで変更することはできません。 サーバーが返されたデータのいずれかを保持する場合は、サーバーがサーバー割り当てメモリにデータをコピーする必要があります。

SP の詳細については、「 セキュリティ サポート プロバイダー (SSP)」を参照してください。

ServerPrincName

RpcServerRegisterAuthInfo 関数を呼び出したサーバー アプリケーションによって指定されたサーバー プリンシパル名へのポインターへのポインターを返します。 返される名前の内容とその構文は、使用中の認証サービスによって定義されます。 SCHANNEL SSP の場合、プリンシパル名は msstd 形式です。 msstd 形式の詳細については、「 プリンシパル名」を参照してください。

RpcBindingInqAuthClientExServerPrincName パラメーターを返さないようにするには、null 値を指定します。 この場合、アプリケーションは RpcStringFree 関数を呼び出しません。

AuthnLevel

ClientBinding バインド ハンドルでリモート プロシージャ 呼び出しを行ったクライアント アプリケーションによって要求された認証レベルに設定されたポインターを返します。 RPC でサポートされる認証レベルの一覧については、「 認証レベルの定数」を参照してください。

RpcBindingInqAuthClientExAuthnLevel パラメーターを返さないようにするには、null 値を指定します。

AuthnSvc

ClientBinding バインド ハンドルでリモート プロシージャ 呼び出しを行ったクライアント アプリケーションによって要求された認証サービスに設定されたポインターを返します。 RPC でサポートされる認証サービスの一覧については、「 Authentication-Service Constants」を参照してください。

RpcBindingInqAuthClientExAuthnSvc パラメーターを返さないようにするには、null 値を指定します。

AuthnSvc は、SECPKG_ATTR_DCE_INFOまたはSECPKG_ATTR_REMOTE_CERT_CONTEXTの各証明書ベースの SSP で QueryContextAttributes によって返されるSECURITY_STATUSに対応します
 

AuthzSvc

バインド バインド ハンドルでリモート プロシージャ 呼び出しを行ったクライアント アプリケーションによって要求された承認サービスに設定されたポインターを返します。 RPC でサポートされる承認サービスの一覧については、「 Authorization-Service Constants 」を参照してください。

RpcBindingInqAuthClientExAuthzSvc パラメーターを返さないようにするには、null 値を指定します。 このパラメーターは、RPC_C_AUTHN_WINNT認証サービスでは使用されません。 戻り値は常にRPC_S_AUTHZ_NONEされます。

Flags

プリンシパル名の形式を制御します。 このパラメーターは、次の値に設定できます。

意味
RPC_C_FULL_CERT_CHAIN
プリンシパル名を 完全形式 で返します。

戻り値

意味
RPC_S_OK
呼び出しは成功しました。
RPC_S_INVALID_BINDING
バインド ハンドルが無効です。
RPC_S_WRONG_KIND_OF_BINDING
これは、操作のバインドの種類が間違っていました。
RPC_S_BINDING_HAS_NO_AUTH
バインドには認証情報がありません。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

注釈

サーバー アプリケーションは RpcBindingInqAuthClientEx 関数を 呼び出して、リモート プロシージャ 呼び出しを行った認証済みクライアントのプリンシパル名または特権属性を取得します。 さらに、 RpcBindingInqAuthClientEx は 、クライアントによって指定された認証サービス、認証レベル、およびサーバー プリンシパル名を返します。 サーバーは、承認のために返されたデータを使用できます。

RPC ランタイム ライブラリは、返された ServerPrincName パラメーターにメモリを割り当てます。 アプリケーションは、返された引数文字列に対して RpcStringFree 関数を呼び出す役割を担います。

同期 RPC 呼び出しの場合、サーバー アプリケーションは ClientBinding パラメーターの値として 0 を使用できます。 ゼロを使用すると、現在実行中のリモート プロシージャ コールから認証と承認の情報が取得されます。

注意

rpcdce.h ヘッダーは、RPCBindingInqAuthClientEx をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rpcdce.h (Rpc.h を含む)
Library Rpcrt4.lib
[DLL] Rpcrt4.dll

こちらもご覧ください

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree