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 パラメーター値として 、RpcServerRegisterAuthInfo の ServerPrincName パラメーター値を GetKeyFn 取得関数に渡します。 RPC ランタイム ライブラリは、キー バージョン (KeyVer) パラメーターの値を自動的に提供します。 KeyVer パラメーター値が 0 の場合、取得関数は使用可能な最新のキーを返す必要があります。 取得関数は、 Key パラメーターで認証キーを返します。
RpcServerRegisterAuthInfo から呼び出された取得関数がRPC_S_OK以外の状態を返す場合、この関数は失敗し、サーバー アプリケーションにエラー コードを返します。 クライアントのリモート プロシージャ コール要求の認証中に RPC ランタイム ライブラリによって呼び出された取得関数がRPC_S_OK以外の状態を返した場合、要求は失敗し、RPC ランタイム ライブラリはクライアント アプリケーションにエラー コードを返します。
Arg
GetKeyFn ルーチンに渡すパラメーターへのポインター (指定されている場合)。 このパラメーターを使用して、認証サービスが SCHANNEL に設定されている場合に明示的な資格情報を指定する SCHANNEL_CRED 構造体へのポインターを渡すこともできます。
Arg パラメーターが NULL に設定されている場合、この関数は、ディレクトリ サービスで設定されている場合、既定の証明書または資格情報を使用します。
戻り値
値 | 説明 |
---|---|
|
呼び出しは成功しました。 |
|
認証サービスが不明です。 |
解説
サーバー アプリケーションは 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 |