RpcBindingSetAuthInfoW 関数 (rpcdce.h)
RpcBindingSetAuthInfo 関数は、バインド ハンドルの認証と承認の情報を設定します。
構文
RPC_STATUS RpcBindingSetAuthInfoW(
RPC_BINDING_HANDLE Binding,
RPC_WSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
パラメーター
Binding
認証と承認の情報を適用するサーバー バインド ハンドル。
ServerPrincName
Binding によって参照されるサーバーの予想されるプリンシパル名へのポインター。 名前とその構文の内容は、使用中の認証サービスによって定義されます。
AuthnLevel
Binding を使用して行われたリモート プロシージャ 呼び出しで実行される認証のレベル。 RPC でサポートされる認証レベルの一覧については、 認証レベルの定数の一覧を参照してください。
AuthnSvc
使用する認証サービス。 注を参照。
バインドを使用して行われたリモート プロシージャ コールの認証を無効にするには、RPC_C_AUTHN_NONEを指定 します。
RPC_C_AUTHN_DEFAULTが指定されている場合、RPC ランタイム ライブラリは 、Binding を使用して行われるリモート プロシージャ 呼び出しにRPC_C_AUTHN_WINNT認証サービスを使用します。
AuthIdentity
選択した認証および承認サービスに適したクライアントの認証資格情報と承認資格情報を含む構造体を処理します。RPC_C_AUTHN_WINNT認証サービス AuthIdentity を使用する場合は、 SEC_WINNT_AUTH_IDENTITY 構造体 (Rpcdce.h で定義) へのポインターにする必要があります。 Kerberos およびネゴシエート認証サービスでは、 SEC_WINNT_AUTH_IDENTITY 構造も使用されます。
RPC_C_AUTHN_GSS_SCHANNEL認証サービスを選択する場合、 AuthIdentity パラメーターは SCHANNEL_CRED 構造体 (Schannel.h で定義) へのポインターである必要があります。 現在のアドレス空間のセキュリティ ログイン コンテキストを使用するには、null 値を指定します。 匿名ログイン コンテキストを使用するには、RPC_C_NO_CREDENTIALS値を渡します。
AuthzSvc
目的のインターフェイス用にサーバーによって実装される承認サービス。 注を参照。
承認データの有効性と信頼性は、任意のアプリケーション データと同様に、選択した認証サービスと認証レベルによって異なります。 RPC_C_AUTHN_WINNT認証サービスを使用する場合、このパラメーターは無視されます。
戻り値
値 | 意味 |
---|---|
|
呼び出しは成功しました。 |
|
バインド ハンドルが無効でした。 |
|
これは、操作の間違った種類のバインドでした。 |
|
不明な認証サービス。 |
注釈
クライアント アプリケーションは RpcBindingSetAuthInfo 関数を 呼び出して、認証されたリモート プロシージャ 呼び出しを行うためにサーバー バインド ハンドルを設定します。 この関数を呼び出すためにクライアントは必要ありません。
クライアントが RpcBindingSetAuthInfo を呼び出さない限り、 バインド バインド ハンドルに対するリモート プロシージャ呼び出しは認証されません。 サーバーは、リモート プロシージャ 呼び出し内から RpcBindingInqAuthClient を呼び出して、その呼び出しが認証されているかどうかを判断できます。
RpcBindingSetAuthInfo 関数は、資格情報のスナップショットを受け取ります。 したがって、 AuthIdentity パラメーター専用のメモリは、バインド ハンドルの前に解放できます。
Microsoft RPC のバージョンによって要件が異なるため、バインド ハンドルが存在する限り、アプリケーションで AuthIdentity パラメーターへのポインターを維持することをお勧めします。 これにより、アプリケーションの移植性が向上します。
Windows Server 2003 SP1 および Windows XP SP2: Windows XP SP2 および Windows Server 2003 SP1 の場合、 AuthIdentity パラメーターへのポインターをバインド ハンドルの有効期間中維持する必要はありません。 このポインターは、RpcBindingInqAuthInfo または RpcBindingInqAuthInfoEx の後続の呼び出しが行われる場合にのみ維持する必要があります。
注意
rpcdce.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RpcBindingSetAuthInfo を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | rpcdce.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |