次の方法で共有


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

リモート プロシージャ 呼び出しを行ったクライアントのクライアント バインド ハンドル。 この値には 0 を指定できます。 「解説」を参照してください。

Privs

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

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

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

ServerPrincName

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

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

AuthnLevel

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

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

AuthnSvc

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

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

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

AuthzSvc

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

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

Flags

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

価値 意味
RPC_C_FULL_CERT_CHAIN
プリンシパル名を fullsic 形式 返します。

戻り値

価値 意味
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 ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RpcBindingInqAuthClientEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー rpcdce.h (Rpc.h を含む)
ライブラリ Rpcrt4.lib
DLL Rpcrt4.dll

関連項目

RpcBindingInqAuthClient の

RpcBindingSetAuthInfo の

RpcStringFree を する