Share via


WinHttpSetCredentials 関数 (winhttp.h)

WinHttpSetCredentials 関数は、必要な承認資格情報をサーバーに渡します。

構文

WINHTTPAPI BOOL WinHttpSetCredentials(
  [in] HINTERNET hRequest,
  [in] DWORD     AuthTargets,
  [in] DWORD     AuthScheme,
  [in] LPCWSTR   pwszUserName,
  [in] LPCWSTR   pwszPassword,
  [in] LPVOID    pAuthParams
);

パラメーター

[in] hRequest

WinHttpOpenRequest によって返される有効な HINTERNET ハンドル。

[in] AuthTargets

認証ターゲットを含むフラグを指定する符号なし整数。 次の表のいずれかの値を指定できます。

説明
WINHTTP_AUTH_TARGET_SERVER
資格情報はサーバーに渡されます。
WINHTTP_AUTH_TARGET_PROXY
資格情報はプロキシに渡されます。

[in] AuthScheme

認証スキームを含むフラグを指定する符号なし整数。 WinHttpQueryAuthSchemes から返される、サポートされている認証スキームのいずれかである必要があります。 次の表に、使用可能な値を示します。

説明
WINHTTP_AUTH_SCHEME_BASIC
基本認証を使用します。
WINHTTP_AUTH_SCHEME_NTLM
NTLM 認証を使用します。
WINHTTP_AUTH_SCHEME_PASSPORT
パスポート認証を使用します。
WINHTTP_AUTH_SCHEME_DIGEST
ダイジェスト認証を使用します。
WINHTTP_AUTH_SCHEME_NEGOTIATE
NTLM 認証と Kerberos 認証を選択します。

[in] pwszUserName

有効なユーザー名を含む文字列へのポインター。

[in] pwszPassword

有効なパスワードを含む文字列へのポインター。 パスワードは空白にすることができます。

[in] pAuthParams

このパラメーターは予約済みであり、 NULL である必要があります。

戻り値

成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 拡張エラー情報については、 GetLastError を呼び出します。 次の表は、返されるエラー コードを示しています。

エラー コード 説明
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
指定されたハンドルが正しい状態でないため、要求された操作を実行できません。
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
指定されたハンドルの種類がこの操作に対して正しくありません。
ERROR_WINHTTP_INTERNAL_ERROR
内部エラーが発生しました。
ERROR_NOT_ENOUGH_MEMORY
要求された操作を完了するのに十分なメモリが使用できませんでした (Windows エラー コード)。

解説

WinHTTP が非同期モードで使用されている場合 (つまり、WinHttpOpenWINHTTP_FLAG_ASYNCが設定されている場合)、この関数は同期的に動作します。 戻り値は、成功または失敗を示します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

WinHttpSetCredentials によって設定された資格情報は、1 つの要求にのみ使用されます。WinHTTP は、後続の要求で使用するためにこれらの資格情報をキャッシュしません。 その結果、複数の課題に対応できるようにアプリケーションを記述する必要があります。 認証された接続が再利用された場合、後続の要求はチャレンジできませんが、コードは任意の時点でチャレンジに応答できる必要があります。

WinHttpSetCredentials の使用を示すサンプル コードについては、「WinHTTP での認証」を参照してください。

メモPassport 認証を使用して 407 状態コードに応答する場合、WinHTTP アプリケーションは WinHttpSetOption を使用して、WinHttpSetCredentials ではなくプロキシ資格情報を提供する必要があります。 これは、Passport 認証を使用する場合にのみ当てはまります。他のすべての状況では、WinHttpSetOption の安全性が低いため、WinHttpSetCredentials を使用します。
 
メモ Windows XP および Windows 2000 の場合は、WinHttp スタート ページの 「ランタイム要件 」セクションを参照してください。
 

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional sp3 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003、Windows 2000 Server SP3 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winhttp.h
Library Winhttp.lib
[DLL] Winhttp.dll
再頒布可能パッケージ Windows XP および Windows 2000 で WinHTTP 5.0 およびインターネット エクスプローラー 5.01 以降。

関連項目

Microsoft Windows HTTP サービス (WinHTTP) について

WinHTTP での認証

WinHTTP バージョン

WinHttpCloseHandle

WinHttpConnect

WinHttpOpen

WinHttpOpenRequest

WinHttpQueryAuthSchemes