WinHttpSetCredentials-Funktion (winhttp.h)

Die WinHttpSetCredentials-Funktion übergibt die erforderlichen Autorisierungsanmeldeinformationen an den Server.

Syntax

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

Parameter

[in] hRequest

Gültiges HINTERNET-Handle, das von WinHttpOpenRequest zurückgegeben wird.

[in] AuthTargets

Eine ganze Zahl ohne Vorzeichen, die ein Flag angibt, das das Authentifizierungsziel enthält. Dies kann einer der Werte in der folgenden Tabelle sein.

Wert Bedeutung
WINHTTP_AUTH_TARGET_SERVER
Anmeldeinformationen werden an einen Server übergeben.
WINHTTP_AUTH_TARGET_PROXY
Anmeldeinformationen werden an einen Proxy übergeben.

[in] AuthScheme

Eine ganze Zahl ohne Vorzeichen, die ein Flag angibt, das das Authentifizierungsschema enthält. Muss eines der unterstützten Authentifizierungsschemas sein, das von WinHttpQueryAuthSchemes zurückgegeben wird. In der folgenden Tabelle werden die möglichen Werte angegeben.

Wert Bedeutung
WINHTTP_AUTH_SCHEME_BASIC
Verwenden Sie die Standardauthentifizierung.
WINHTTP_AUTH_SCHEME_NTLM
Verwenden Sie die NTLM-Authentifizierung.
WINHTTP_AUTH_SCHEME_PASSPORT
Verwenden Sie die Passport-Authentifizierung.
WINHTTP_AUTH_SCHEME_DIGEST
Verwenden Sie die Digestauthentifizierung.
WINHTTP_AUTH_SCHEME_NEGOTIATE
Wählt zwischen NTLM- und Kerberos-Authentifizierung aus.

[in] pwszUserName

Zeiger auf eine Zeichenfolge, die einen gültigen Benutzernamen enthält.

[in] pwszPassword

Zeiger auf eine Zeichenfolge, die ein gültiges Kennwort enthält. Das Kennwort kann leer sein.

[in] pAuthParams

Dieser Parameter ist reserviert und muss NULL sein.

Rückgabewert

Gibt TRUE zurück, wenn erfolgreich, andernfalls FALSE . Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. In der folgenden Tabelle sind die zurückgegebenen Fehlercodes aufgeführt.

Fehlercode BESCHREIBUNG
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
Der angeforderte Vorgang kann nicht ausgeführt werden, da sich das angegebene Handle nicht im richtigen Zustand befindet.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Der Typ des angegebenen Handles ist für diesen Vorgang falsch.
ERROR_WINHTTP_INTERNAL_ERROR
Ein interner Fehler ist aufgetreten.
ERROR_NOT_ENOUGH_MEMORY
Es war nicht genügend Arbeitsspeicher verfügbar, um den angeforderten Vorgang abzuschließen (Windows-Fehlercode).

Hinweise

Auch wenn WinHTTP im asynchronen Modus verwendet wird (d. h. wenn WINHTTP_FLAG_ASYNC in WinHttpOpen festgelegt wurde), wird diese Funktion synchron ausgeführt. Der Rückgabewert gibt Erfolg oder Fehler an. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Die von WinHttpSetCredentials festgelegten Anmeldeinformationen werden nur für eine einzelne Anforderung verwendet. WinHTTP speichert diese Anmeldeinformationen nicht für die Verwendung in nachfolgenden Anforderungen. Daher müssen Anwendungen geschrieben werden, damit sie auf mehrere Herausforderungen reagieren können. Wenn eine authentifizierte Verbindung wieder verwendet wird, können nachfolgende Anforderungen nicht abgefragt werden, aber Ihr Code sollte jederzeit auf eine Herausforderung reagieren können.

Beispielcode, der die Verwendung von WinHttpSetCredentials veranschaulicht, finden Sie unter Authentifizierung in WinHTTP.

Hinweis Wenn Sie die Passport-Authentifizierung verwenden und auf einen 407-status-Code reagieren, muss eine WinHTTP-Anwendung WinHttpSetOption verwenden, um Proxyanmeldeinformationen anstelle von WinHttpSetCredentials bereitzustellen. Dies gilt nur, wenn die Passport-Authentifizierung verwendet wird. Verwenden Sie unter allen anderen Umständen WinHttpSetCredentials, da WinHttpSetOption weniger sicher ist.
 
Hinweis Informationen zu Windows XP und Windows 2000 finden Sie im Abschnitt Laufzeitanforderungen der WinHttp-Startseite .
 

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winhttp.h
Bibliothek Winhttp.lib
DLL Winhttp.dll
Verteilbare Komponente WinHTTP 5.0 und Internet Explorer 5.01 oder höher unter Windows XP und Windows 2000.

Weitere Informationen

Informationen zu Microsoft Windows HTTP-Diensten (WinHTTP)

Authentifizierung in WinHTTP

WinHTTP-Versionen

WinHttpCloseHandle

WinHttpConnect

WinHttpOpen

WinHttpOpenRequest

WinHttpQueryAuthSchemes