Bagikan melalui


Fungsi WinHttpSetCredentials (winhttp.h)

Fungsi WinHttpSetCredentials meneruskan kredensial otorisasi yang diperlukan ke server.

Sintaks

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

Parameter

[in] hRequest

Handel HINTERNET yang valid dikembalikan oleh WinHttpOpenRequest.

[in] AuthTargets

Bilangan bulat yang tidak ditandatangani yang menentukan bendera yang berisi target autentikasi. Bisa menjadi salah satu nilai dalam tabel berikut ini.

Nilai Makna
WINHTTP_AUTH_TARGET_SERVER
Kredensial diteruskan ke server.
WINHTTP_AUTH_TARGET_PROXY
Kredensial diteruskan ke proksi.

[in] AuthScheme

Bilangan bulat yang tidak ditandatangani yang menentukan bendera yang berisi skema autentikasi. Harus salah satu skema autentikasi yang didukung yang dikembalikan dari WinHttpQueryAuthSchemes. Tabel berikut mengidentifikasi kemungkinan nilai.

Nilai Makna
WINHTTP_AUTH_SCHEME_BASIC
Gunakan autentikasi dasar.
WINHTTP_AUTH_SCHEME_NTLM
Gunakan autentikasi NTLM.
WINHTTP_AUTH_SCHEME_PASSPORT
Gunakan autentikasi paspor.
WINHTTP_AUTH_SCHEME_DIGEST
Gunakan autentikasi hash.
WINHTTP_AUTH_SCHEME_NEGOTIATE
Memilih antara autentikasi NTLM dan Kerberos.

[in] pwszUserName

Penunjuk ke string yang berisi nama pengguna yang valid.

[in] pwszPassword

Penunjuk ke string yang berisi kata sandi yang valid. Kata sandi bisa kosong.

[in] pAuthParams

Parameter ini dicadangkan dan harus NULL.

Mengembalikan nilai

Mengembalikan TRUE jika berhasil, atau FALSE sebaliknya. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Tabel berikut mengidentifikasi kode kesalahan yang dikembalikan.

Kode Kesalahan Deskripsi
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
Operasi yang diminta tidak dapat dilakukan karena handel yang diberikan tidak dalam keadaan yang benar.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Jenis handel yang disediakan salah untuk operasi ini.
ERROR_WINHTTP_INTERNAL_ERROR
Terjadi kesalah internal.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia untuk menyelesaikan operasi yang diminta (kode galat Windows).

Keterangan

Bahkan ketika WinHTTP digunakan dalam mode asinkron (yaitu, ketika WINHTTP_FLAG_ASYNC telah diatur di WinHttpOpen), fungsi ini beroperasi secara sinkron. Nilai yang dikembalikan menunjukkan keberhasilan atau kegagalan. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Kredensial yang ditetapkan oleh WinHttpSetCredentials hanya digunakan untuk satu permintaan; WinHTTP tidak menyimpan kredensial ini untuk digunakan dalam permintaan berikutnya. Akibatnya, aplikasi harus ditulis sehingga dapat merespons beberapa tantangan. Jika koneksi terautentikasi digunakan kembali, permintaan berikutnya tidak dapat ditantang, tetapi kode Anda harus dapat merespons tantangan kapan saja.

Untuk kode sampel yang mengilustrasikan penggunaan WinHttpSetCredentials, lihat Autentikasi di WinHTTP.

Catatan Saat menggunakan autentikasi Paspor dan merespons kode status 407, aplikasi WinHTTP harus menggunakan WinHttpSetOption untuk memberikan kredensial proksi daripada WinHttpSetCredentials. Ini hanya berlaku saat menggunakan autentikasi Paspor; dalam semua keadaan lain, gunakan WinHttpSetCredentials, karena WinHttpSetOption kurang aman.
 
Catatan Untuk Windows XP dan Windows 2000, lihat bagian Persyaratan Run-Time di halaman mulai WinHttp.
 

Persyaratan

   
Klien minimum yang didukung Windows XP, Windows 2000 Professional dengan SP3 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003, Windows 2000 Server dengan SP3 [hanya aplikasi desktop]
Target Platform Windows
Header winhttp.h
Pustaka Winhttp.lib
DLL Winhttp.dll
Redistribusi WinHTTP 5.0 dan Internet Explorer 5.01 atau yang lebih baru pada Windows XP dan Windows 2000.

Lihat juga

Tentang Microsoft Windows HTTP Services (WinHTTP)

Autentikasi di WinHTTP

Versi WinHTTP

WinHttpCloseHandle

WinHttpConnect

WinHttpBuka

WinHttpOpenRequest

WinHttpQueryAuthSchemes