RpcServerRegisterAuthInfoW 関数 (rpcdce.h)

RpcServerRegisterAuthInfo 関数は、RPC ランタイム ライブラリに認証情報を登録します。

構文

RPC_STATUS RpcServerRegisterAuthInfoW(
  RPC_WSTR                  ServerPrincName,
  unsigned long             AuthnSvc,
  RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
  void                      *Arg
);

パラメーター

ServerPrincName

AuthnSvc パラメーターで指定されたサービスを使用してリモート プロシージャ呼び出しを認証するときにサーバーに使用するプリンシパル名へのポインター。 名前とその構文の内容は、使用中の認証サービスによって定義されます。 詳細については、「 プリンシパル名」を参照してください。

AuthnSvc

サーバーがリモート プロシージャ コールの要求を受信するときに使用する認証サービス。

GetKeyFn

暗号化キーを返すサーバー アプリケーション提供のルーチンのアドレス。 「RPC_AUTH_KEY_RETRIEVAL_FN」を参照してください。

暗号化キー取得の既定の方法を使用するには、 NULL パラメーター値を指定します。 この場合、認証サービスは既定の動作を指定します。 RPC_C_AUTHN_WINNT認証サービスを使用する場合は、このパラメーターを NULL に 設定します。

認証サービス GetKeyFn Arg 実行時の動作
RPC_C_AUTHN_DPA 無視 無視 サポートされていません
RPC_C_AUTHN_GSS_KERBEROS 無視 無視 サポートされていません
RPC_C_AUTHN_GSS_NEGOTIATE 無視 無視 サポートされていません
RPC_C_AUTHN_GSS_SCHANNEL 無視 無視 サポートされていません
RPC_C_AUTHN_MQ 無視 無視 サポートされていません
RPC_C_AUTHN_MSN 無視 無視 サポートされていません
RPC_C_AUTHN_WINNT 無視 無視 サポートされていません
RPC_C_AUTHN_DCE_PRIVATE NULL Null 以外 指定したキー テーブルから暗号化キーを取得する既定の方法を使用します。指定された引数は、既定の取得関数に渡されます。
RPC_C_AUTHN_DCE_PRIVATE Null 以外 NULL 指定された暗号化キー取得関数を使用して、既定のキー テーブルからキーを取得します。
RPC_C_AUTHN_DCE_PRIVATE Null 以外 Null 以外 指定した暗号化キー取得関数を使用して、指定したキー テーブルからキーを取得します。指定した引数が取得関数に渡されます。
RPC_C_AUTHN_DEC_PUBLIC 無視 無視 将来利用するために予約されています。
 
 

RPC ランタイム ライブラリは、 ServerPrincName パラメーター値として 、RpcServerRegisterAuthInfoServerPrincName パラメーター値を GetKeyFn 取得関数に渡します。 RPC ランタイム ライブラリは、キー バージョン (KeyVer) パラメーターの値を自動的に提供します。 KeyVer パラメーター値が 0 の場合、取得関数は使用可能な最新のキーを返す必要があります。 取得関数は、 Key パラメーターで認証キーを返します。

RpcServerRegisterAuthInfo から呼び出された取得関数がRPC_S_OK以外の状態を返す場合、この関数は失敗し、サーバー アプリケーションにエラー コードを返します。 クライアントのリモート プロシージャ コール要求の認証中に RPC ランタイム ライブラリによって呼び出された取得関数がRPC_S_OK以外の状態を返した場合、要求は失敗し、RPC ランタイム ライブラリはクライアント アプリケーションにエラー コードを返します。

Arg

GetKeyFn ルーチンに渡すパラメーターへのポインター (指定されている場合)。 このパラメーターを使用して、認証サービスが SCHANNEL に設定されている場合に明示的な資格情報を指定する SCHANNEL_CRED 構造体へのポインターを渡すこともできます。

Arg パラメーターが NULL に設定されている場合、この関数は、ディレクトリ サービスで設定されている場合、既定の証明書または資格情報を使用します。

戻り値

説明
RPC_S_OK
呼び出しは成功しました。
RPC_S_UNKNOWN_AUTHN_SERVICE
認証サービスが不明です。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

サーバー アプリケーションは RpcServerRegisterAuthInfo を呼び出して、リモート プロシージャ コールの認証に使用する認証サービスを登録します。 サーバーは、サーバーが登録する認証サービスごとにこのルーチンを 1 回呼び出します。 特定の認証サービスに対してサーバーがこの関数を複数回呼び出した場合、結果は未定義になります。

クライアント アプリケーションが指定する認証サービス ( RpcBindingSetAuthInfo または RpcServerRegisterAuthInfo を使用) は、サーバー アプリケーションで指定された認証サービスのいずれかである必要があります。 それ以外の場合は、クライアントのリモート プロシージャ 呼び出しが失敗し、RPC_S_UNKNOWN_AUTHN_SERVICE状態コードが返されます。

注意

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

要件

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

関連項目

RpcBindingSetAuthInfo