Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Następujące flagi opcji są obsługiwane przez winHttpQueryOption i WinHttpSetOption.
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
Wartość domyślna to FALSE. Jeśli ustawiono wartość TRUE, winHTTP nie gwarantuje postępu, jeśli wywołania zwrotne stanu są blokowane przez aplikację klienczą.
Aplikacja kliencka musi zachować szczególną ostrożność, aby wykonać minimalne operacje w ramach wywołania zwrotnego bez blokowania, wracając tak szybko, jak to możliwe, a w szczególności nie może czekać na kolejne wywołania WinHTTP. Jeśli nie zostaną one zgodne z tymi wytycznymi, prawdopodobnie wystąpi negatywny wpływ na wydajność lub potencjalna aplikacja zawiesza się. W przypadku użycia w określony sposób ta opcja może poprawić wydajność.
WINHTTP_OPTION_AUTOLOGON_POLICY
Ustawia niepodpisaną długą wartość całkowitą określającą zasady automatycznego logowania przy użyciu jednej z następujących wartości.
| Termin | Opis |
|---|---|
| WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH | Poświadczenia domyślne nie są używane. Należy pamiętać, że ta flaga ma zastosowanie tylko wtedy, gdy określisz serwer przy użyciu rzeczywistej nazwy maszyny. Nie zacznie obowiązywać, jeśli określisz serwer za pomocą "localhost" lub adresu IP. |
| WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW | Uwierzytelniony dziennik przy użyciu domyślnych poświadczeń jest wykonywany dla wszystkich żądań. |
| WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM | Uwierzytelniony dziennik przy użyciu domyślnych poświadczeń jest wykonywany tylko dla żądań w lokalnym intranecie. |
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
Po ustawieniu tej opcji na dojściu sesji należy przekazać liczbę połączeń, które chcesz otworzyć. Następnie, po pierwszym wysłaniu żądania, zamiast otwierania tylko jednego połączenia, WinHttp otwiera wiele połączeń równolegle. Może to poprawić wydajność kolejnych żądań do tego samego miejsca docelowego, co nie będzie miało narzutu na utworzenie połączenia.
WINHTTP_OPTION_CALLBACK
Pobiera wskaźnik do zestawu funkcji wywołania zwrotnego za pomocą funkcji WinHttpSetStatusCallback.
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
Ustawia kontekst certyfikatu klienta. Jeśli aplikacja odbiera ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED, musi wywołać metodę WinHttpSetOption , aby podać certyfikat przed ponowieniem próby wykonania żądania. W ramach przetwarzania tej opcji WinHttp wywołuje element CertDuplicateCertificateContext w kontekście certyfikatu dostarczonego przez obiekt wywołujący, aby kontekst certyfikatu mógł zostać niezależnie zwolniony przez obiekt wywołujący.
Uwaga / Notatka
Aplikacja nie powinna próbować zamknąć magazynu certyfikatów z flagą CERT_CLOSE_STORE_FORCE_FLAG w wywołaniu CertCloseStore w magazynie certyfikatów, z którego został pobrany kontekst certyfikatu. Może wystąpić naruszenie dostępu.
Gdy serwer żąda certyfikatu klienta, WinHttpSendRequest lub WinHttpReceiveResponse zwraca błąd ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED . Jeśli serwer żąda certyfikatu, ale nie wymaga go, aplikacja może określić tę opcję, aby wskazać, że nie ma certyfikatu. Serwer może wybrać inny schemat uwierzytelniania lub zezwolić na anonimowy dostęp do serwera. Aplikacja udostępnia makro WINHTTP_NO_CLIENT_CERT_CONTEXT w parametrze lpBufferwinHttpSetOption , jak pokazano w poniższym przykładzie kodu.
BOOL fRet = WinHttpSetOption(hRequest,
WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
WINHTTP_NO_CLIENT_CERT_CONTEXT,
0);
Jeśli serwer wymaga certyfikatu klienta, może wysłać kod stanu HTTP 403 w odpowiedzi. Aby uzyskać więcej informacji, zobacz opcję WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST .
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
Pobiera strukturę SecPkgContext_IssuerListInfoEx , gdy błąd z winHttpSendRequest lub WinHttpReceiveResponse jest ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED. Lista wystawców w strukturze zawiera listę dopuszczalnych urzędów certyfikacji z serwera. Aplikacja kliencka może filtrować listę urzędu certyfikacji, aby pobrać certyfikat klienta na potrzeby uwierzytelniania SSL.
Alternatywnie, jeśli serwer żąda certyfikatu klienta, ale nie wymaga go, aplikacja może wywołać winHttpSetOption z opcją WINHTTP_OPTION_CLIENT_CERT_CONTEXT . Aby uzyskać więcej informacji, zobacz opcję WINHTTP_OPTION_CLIENT_CERT_CONTEXT .
WINHTTP_OPTION_CODEPAGE
Ustawia stronę kodową używaną do przetwarzania adresu URL (czyli ciągu zapytania). Wartość domyślna to UTF8.
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
Ustawia wartość niepodpisanej długiej liczby całkowitej, która określa, czy jest włączone uwierzytelnianie usługi Passport w uwierzytelnianiu WinHTTP . Wartość może być jedną z następujących wartości:
| Termin | Opis |
|---|---|
| WINHTTP_DISABLE_PASSPORT_AUTH | Uwierzytelnianie za pomocą usługi Microsoft Passport jest wyłączone. Jest to wartość domyślna. |
| WINHTTP_DISABLE_PASSPORT_KEYRING | Klucz usługi Passport jest wyłączony. Jest to wartość domyślna. |
| WINHTTP_ENABLE_PASSPORT_AUTH | Uwierzytelnianie za pomocą usługi Passport jest włączone. |
| WINHTTP_ENABLE_PASSPORT_KEYRING | Klucz usługi Passport jest włączony. |
WINHTTP_OPTION_CONNECT_RETRIES
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą liczbę prób połączeniawinHTTP z hostem. Usługi HTTP systemu Microsoft Windows (WinHTTP) próbują tylko raz na adres IP (Internet Protocol). Jeśli na przykład próbujesz nawiązać połączenie z hostem wieloadresowym, który ma 10 adresów IP i WINHTTP_OPTION_CONNECT_RETRIES jest ustawiony na 7, usługa WinHTTP próbuje połączyć się tylko z pierwszym siedmioma adresami IP. Biorąc pod uwagę ten sam zestaw 10 adresów IP, jeśli WINHTTP_OPTION_CONNECT_RETRIES jest ustawiony na 20, WinHTTP próbuje każdy z 10 tylko raz. Jeśli próba połączenia nadal kończy się niepowodzeniem po określonej liczbie prób lub jeśli upłynął limit czasu połączenia przed upływem, żądanie zostanie anulowane. Wartość domyślna WINHTTP_OPTION_CONNECT_RETRIES to pięć prób.
WINHTTP_OPTION_CONNECT_TIMEOUT
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu w milisekundach. Ustawienie tej opcji na nieskończoną (0xFFFFFFFF) spowoduje wyłączenie tego czasomierza.
Jeśli żądanie połączenia TCP trwa dłużej niż ta wartość limitu czasu, żądanie zostanie anulowane. Domyślny limit czasu wynosi 60 sekund. Podczas próby nawiązania połączenia z wieloma adresami IP dla jednego hosta (hosta wieloadresowego) limit czasu jest przeznaczony dla każdego pojedynczego połączenia.
WINHTTP_OPTION_CONNECTION_INFO
Pobiera źródłowy i docelowy adres IP oraz port żądania, które wygenerowało odpowiedź, gdy zwraca wartość WinHttpReceiveResponse . Aplikacja wywołuje winHttpQueryOption z opcją WINHTTP_OPTION_CONNECTION_INFO i udostępnia strukturę WINHTTP_CONNECTION_INFO w parametrze lpBuffer . Aby uzyskać więcej informacji, zobacz WINHTTP_CONNECTION_INFO.
Dotyczy: Windows XP z dodatkiem SP2 lub nowszym; Windows 2003 z dodatkiem SP1 lub nowszym.
WINHTTP_OPTION_CONNECTION_GUID
Oznacz połączenie skojarzone z dojściem żądania WinHTTP z identyfikatorem GUID. Umożliwia to niestandardową kontrolę nad tym, które żądania używają grup połączeń z opcją WINHTTP_OPTION_MATCH_CONNECTION_GUID .
WINHTTP_OPTION_CONNECTION_STATS_V0
Retreives struktury TCP_INFO_v0 dla połączenia bazowego używanego przez żądanie. Zwrócona struktura może zawierać statystyki z poprzednich żądań wysyłanych przez to samo połączenie.
Uwaga / Notatka
Ta opcja została zastąpiona przez WINHTTP_OPTION_CONNECTION_STATS_V1.
WINHTTP_OPTION_CONNECTION_STATS_V1
Retreives struktury TCP_INFO_v1 dla bazowego połączenia używanego przez żądanie. Zwrócona struktura może zawierać statystyki z poprzednich żądań wysyłanych przez to samo połączenie.
WINHTTP_OPTION_CONTEXT_VALUE
Ustawia lub pobiera DWORD_PTR , który zawiera wskaźnik do wartości kontekstu skojarzonej z tym dojściem DO SIECI COSMOSNET . Używana jest wartość przechowywana w buforze, a flaga opcji WINHTTP_OPTION_CONTEXT_VALUE ma przypisaną nową wartość.
WINHTTP_OPTION_DECOMPRESSION
Ustawia DWORD flag, które określają, czy WinHTTP automatycznie dekompresuje treść odpowiedzi przy użyciu skompresowanych kodowań zawartości. WinHTTP ustawi również odpowiedni nagłówek Accept-Encoding, przesłaniając wszystkie dostarczone przez obiekt wywołujący. Obsługiwane wartości to:
| Termin | Opis |
|---|---|
| WINHTTP_DECOMPRESSION_FLAG_GZIP | Dekompresuj kodowanie zawartości: odpowiedzi gzip. |
| WINHTTP_DECOMPRESSION_FLAG_DEFLATE | Dekompresuj kodowanie zawartości: deflate odpowiedzi. |
| WINHTTP_DECOMPRESSION_FLAG_ALL | Dekompresuj odpowiedzi z dowolnym obsługiwanym kodowaniem zawartości. |
Domyślnie usługa WinHTTP będzie dostarczać skompresowane odpowiedzi do obiektu wywołującego niezmodyfikowane.
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
Ustawienie tej opcji na dojściu sesji WinHttp umożliwia włączenie/wyłączenie, czy łańcuch certyfikatów serwera jest zbudowany.
WINHTTP_OPTION_DISABLE_FEATURE
Ustawia niepodpisaną długą wartość całkowitą określającą, które funkcje są wyłączone z co najmniej jedną z następujących flag. Należy pamiętać, że ta funkcja powinna być przekazywana tylko do metody WinHttpSetOption na żądaniach po utworzeniu dojścia żądania za pomocą polecenia WinHttpOpenRequest, a przed wysłaniem żądania za pomocą polecenia WinHttpSendRequest.
| Termin | Opis |
|---|---|
| WINHTTP_DISABLE_AUTHENTICATION | Automatyczne uwierzytelnianie jest wyłączone. |
| WINHTTP_DISABLE_COOKIES | Automatyczne dodawanie nagłówków plików cookie do żądań jest wyłączone. Ponadto zwracane pliki cookie nie są automatycznie dodawane do bazy danych plików cookie. Wyłączenie plików cookie może spowodować niską wydajność uwierzytelniania usługi Passport. |
| WINHTTP_DISABLE_KEEP_ALIVE | Wyłącza semantyka zachowania aktywności dla połączenia. Semantyka zachowania aktywności jest wymagana w przypadku uwierzytelniania MSN, NTLM i innych typów uwierzytelniania. |
| WINHTTP_DISABLE_REDIRECTS | Automatyczne przekierowywanie jest wyłączone podczas wysyłania żądań za pomocą polecenia WinHttpSendRequest. Jeśli automatyczne przekierowywanie jest wyłączone, aplikacja musi zarejestrować funkcję wywołania zwrotnego w celu pomyślnego uwierzytelnienia usługi Passport. |
WINHTTP_OPTION_DISABLE_GLOBAL_POOLING
Wyłącza globalne, między sesjami buforowanie. Jest to zalecane rozwiązanie, ponieważ globalne buforowanie między sesjami to starsze zachowanie, które jest domyślnie obsługiwane ze względu na zgodność. Ma to wpływ na późniejsze ustawienie maksymalnej liczby połączeń ręcznie.
WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES
Wyłącza co najmniej jedną z następujących praktyk uwierzytelniania serwera proxy w sesji WinHTTP, podając OR wszystkie odpowiednie opcje. Są to wszystkie schematy, z wyjątkiem WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, które wymusza użycie konta komputera lokalnego podczas wysyłania żądań do sprzężenia zwrotnego lub adresu lokalnego. Zapobiega to wyciekowi poświadczeń systemowych do lokalnych serwerów proxy HTTP.
| Termin | Opis |
|---|---|
| WINHTTP_PROXY_DISABLE_SCHEME_BASIC | Wyłącza schemat uwierzytelniania podstawowego. |
| WINHTTP_PROXY_DISABLE_SCHEME_DIGEST | Wyłącza schemat uwierzytelniania szyfrowane. |
| WINHTTP_PROXY_DISABLE_SCHEME_NTLM | Wyłącza schemat uwierzytelniania NTLM. |
| WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS | Wyłącza schemat uwierzytelniania Kerberos. |
| WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE | Wyłącza schemat uwierzytelniania Negotiate. |
| WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE | Wymusza użycie konta komputera lokalnego podczas wysyłania żądań do sprzężenia zwrotnego lub lokalnego adresu. |
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
Zapobiega ponawianiu próby nawiązania połączenia z niższą wersją protokołu zabezpieczeń w przypadku niepowodzenia początkowego negocjowania protokołu.
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
Zezwala nowym żądaniom na otwarcie dodatkowego połączenia HTTP/2 po osiągnięciu maksymalnego limitu współbieżnego strumienia, zamiast czekać na następny dostępny strumień w istniejącym połączeniu.
WINHTTP_OPTION_ENABLE_FEATURE
Ustawia niepodpisaną wartość długiej liczby całkowitej, która określa funkcje, które są obecnie włączone. Może być jedną z następujących wartości.
| Termin | Opis |
|---|---|
| WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION | Jeśli to ustawienie jest włączone, winHTTP tymczasowo przywraca personifikację klienta na czas trwania operacji uwierzytelniania certyfikatu SSL. Tę wartość można ustawić tylko na dojściu sesji. |
| WINHTTP_ENABLE_SSL_REVOCATION | Jeśli to ustawienie jest włączone, usługa WinHTTP zezwala na odwoływanie protokołu SSL. Tę wartość można ustawić tylko na dojściu żądania. |
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
Ustawia maskę bitów DWORD akceptowalnych zaawansowanych wersji HTTP. Dopuszczalne wartości:
| Termin | Opis |
|---|---|
| WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) | Włącza protokół HTTP/2 dla żądania. |
| WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) | Włącza protokół HTTP/3 dla żądania. |
| Brak (0x0) | Ogranicza żądanie do protokołu HTTP/1.1 i wcześniejszego. |
Starsze wersje protokołu HTTP (1.1 i wcześniejsze) nie mogą być wyłączone przy użyciu tej opcji. Wartość domyślna to 0x0.
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT
Tę opcję można ustawić na dojściu sesji WinHttp, aby umożliwić WinHttp używanie kontekstu certyfikatu klienta dostarczonego przez obiekt wywołujący, gdy jest używany protokół HTTP/2.
WINHTTP_OPTION_ENABLETRACING
Ustawia wartość BOOL określającą, czy śledzenie jest obecnie włączone. Tę opcję można ustawić tylko na dojściu NULL COSMOSNET. Zobacz również Zbieranie śladów WinHTTP.
WINHTTP_OPTION_ENCODE_EXTRA
Włącza kodowanie procentu adresu URL dla ścieżki i ciągu zapytania.
Alternatywnie możesz zakodować procent przed wywołaniem metody WinHttp.
WINHTTP_OPTION_EXPIRE_CONNECTION
Tę opcję można ustawić tylko na dojściu żądania, który jest nadal aktywny (wysyłanie lub odbieranie). Ustawienie tej opcji spowoduje, że usługa WinHttp przestanie obsługiwać żądania w połączeniu skojarzonym z przekazanym dojściem żądania. Połączenie zostanie zamknięte po zakończeniu obsługi żądania tej opcji. Ta opcja nie bierze żadnych parametrów.
WINHTTP_OPTION_EXTENDED_ERROR
Pobiera niepodpisaną wartość długiej liczby całkowitej zawierającą kod błędu Microsoft Windows Sockets, który został zamapowany na komunikaty o błędach ERROR_WINHTTP_* ostatnio zwrócone w tym kontekście wątku. Wartość NULL można przekazać jako wartość dojścia.
WINHTTP_OPTION_FEATURE_SUPPORTED
Sprawdź, czy podana flaga opcji jest obsługiwana przez tę wersję winHTTP.
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
Domyślnie, gdy usługa WinHttp wysyła żądanie, jeśli nie ma dostępnych połączeń do obsługi żądania, usługa WinHttp podejmie próbę nawiązania nowego połączenia, a żądanie zostanie powiązane z tym nowym połączeniem. Po ustawieniu tej opcji takie żądanie zostanie obsłużone w pierwszym połączeniu, które stanie się dostępne, a niekoniecznie jest ustanawiane.
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
Przyjmuje wskaźnik do struktury WINHTTP_CREDS_EX z parametrem funkcji hInternet ustawionym na wartość NULL. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jeśli ten klucz rejestru nie jest ustawiony, winHTTP zwróci błąd ERROR_WINHTTP_INVALID_OPTION. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet. Aby udostępniać poświadczenia serwera oprócz poświadczeń serwera proxy, użytkownicy muszą ustawić WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
Przyjmuje wskaźnik do struktury WINHTTP_CREDS_EX z parametrem funkcji hInternet ustawionym na wartość NULL. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jeśli ten klucz rejestru nie jest ustawiony, winHTTP zwróci błąd ERROR_WINHTTP_INVALID_OPTION. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet. Aby udostępniać poświadczenia serwera oprócz poświadczeń serwera proxy, użytkownicy muszą ustawić WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_HANDLE_TYPE
Pobiera niepodpisaną wartość długości całkowitej, która zawiera typ przekazanego dojścia DO SIECI COSMOSNET . Wartość zwracana może być jedną z następujących wartości:
| Termin | Opis |
|---|---|
| WINHTTP_HANDLE_TYPE_CONNECT | Uchwyt jest uchwytem połączenia. |
| WINHTTP_HANDLE_TYPE_REQUEST | Dojście jest dojściem żądania. |
| WINHTTP_HANDLE_TYPE_SESSION | Dojście to dojście sesji. |
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
Uniemożliwia korzystanie z wersji protokołu innych niż te włączone przez WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL do żądania.
WINHTTP_OPTION_HTTP_PROTOCOL_USED
Pobiera dword wskazujący, która zaawansowana wersja HTTP została użyta w danym żądaniu. Aby uzyskać listę możliwych wartości, zobacz WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL.
WINHTTP_OPTION_HTTP_VERSION
Ustawia lub pobiera strukturę HTTP_VERSION_INFO deklarując obsługiwaną starszą wersję HTTP. Jest to opcja dla całego procesu; użyj wartości NULL dla dojścia.
Uwaga / Notatka
Ta struktura jest prawidłowa dla protokołów HTTP/1.0 i HTTP/1.1. Aby zapoznać się z nowoczesnymi wersjami protokołu HTTP, zobacz WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL i WINHTTP_OPTION_HTTP_PROTOCOL_USED.
WINHTTP_OPTION_HTTP2_KEEPALIVE
Tę opcję można ustawić na dojściu sesji, aby platforma WinHttp używała ramek HTTP/2 PING jako mechanizmu utrzymania aktywności. Osoby wywołujące określają limit czasu w milisekundach, a po braku aktywności w połączeniu dla tego limitu czasu WinHttp rozpocznie wysyłanie ramek HTTP/2 PING. Osoby wywołujące nie mogą ustawić wartości limitu czasu mniejszej niż 5000 milisekund.
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
Tę opcję można ustawić na dojściu żądania WinHttp, aby kontrolować, jak działa WinHttp, gdy odpowiedź HTTP/2 zawiera nagłówek "Transfer-Encoding". W takim przypadku WinHttp zwróci błąd, jeśli ta opcja ma wartość FALSE.
WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW
Ustaw początkowy rozmiar okna odbierania http/2 strumienia i próg wysyłania aktualizacji okien przy użyciu struktury WINHTTP_HTTP2_RECEIVE_WINDOW .
WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT
Używa buforu do ustawiania limitu czasu uzgadniania HTTP/3 w milisekundach jako PDWORD.
WINHTTP_OPTION_HTTP3_INITIAL_RTT
Konfiguruje początkowy protokół RTT w milisekundach używanych przez msquic.
WINHTTP_OPTION_HTTP3_KEEPALIVE
Włącza semantyka zachowania aktywności dla połączenia. Używa buforu do ustawiania limitu czasu utrzymania aktywności w milisekundach jako PDWORD.
WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE
Pobiera błąd podany przez serwer w strumieniu HTTP/3 używanym do wysyłania żądania.
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
Umożliwia bezpieczne połączenia z użyciem certyfikatów zabezpieczeń, dla których nie można pobrać listy odwołania certyfikatów.
WINHTTP_OPTION_IPV6_FAST_FALLBACK
Włącza szybki powrót IPv6 (Happyer Eyeballs) dla połączenia. To zachowanie jest podobne do zachowania Happy Eyeballs opisanego w RFC 6555 w celu poprawy czasu połączenia w sieciach, w których protokół IPv6 jest zawodny.
- Jeśli adresy IPv6 i IPv4 zostaną rozpoznane dla danego hosta, usługa WinHttp rozpocznie się od nawiązania połączenia z pierwszym rozpoznanym adresem IPv6 z krótkim limitem czasu (300 ms).
- Jeśli to połączenie nie powiedzie się, winHttp podejmie próbę nawiązania połączenia z pierwszym rozpoznanymi adresami IPv4 z limitem czasu standardowego.
- Jeśli drugie połączenie zakończy się niepowodzeniem, usługa WinHttp ponowi próbę pierwszego rozpoznania adresu IPv6 ze standardowym limitem czasu.
- Jeśli trzecie połączenie nie powiedzie się, WinHttp powróci do domyślnego zachowania dla pozostałych adresów, próbując nawiązać połączenie z każdym z nich ze standardowym limitem czasu, dopóki połączenie nie zostanie nawiązane lub nie pozostanie żadnych adresów.
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
Pobiera, czy można pobrać odpowiedź return connect serwera proxy.
WINHTTP_OPTION_MATCH_CONNECTION_GUID
Pobiera WINHTTP_MATCH_CONNECTION_GUID struktury , aby poinformować WinHTTP o obsłużeniu żądania w pasującym połączeniu. Jeśli WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED jest ustawiona, można używać tylko połączeń z pasującym identyfikatorem GUID. W przeciwnym razie można używać połączeń z pasującymi identyfikatorami GUID i połączeniami, które nie są oznaczone żadnym identyfikatorem GUID.
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą maksymalną liczbę połączeń dozwolonych na serwer HTTP/1.0. Wartość domyślna to INFINITE.
Dotyczy: Windows Vista z dodatkiem SP1 lub nowszym; System Windows Server 2008 lub nowszy.
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
Ustawia lub pobiera niepodpisaną wartość liczb całkowitych, która zawiera maksymalną dozwoloną liczbę połączeń na serwer. Wartość domyślna to INFINITE.
Gdy ta opcja jest ustawiona na zero, WinHTTP ustawia limit liczby połączeń na 2.
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
Ustawia maksymalną liczbę przekierowań, które następuje po winHTTP; wartość domyślna to 10. Ten limit uniemożliwia nieautoryzowane lokacje wstrzymania klienta WinHTTP po dużej liczbie przekierowań.
Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
Maksymalna liczba odpowiedzi kodów stanu informacji 100–199 ignorowanych przed zwróceniem końcowego kodu stanu do klienta WinHTTP. Informacje o kodach stanu 100–199 mogą być wysyłane przez serwer przed ostatecznym kodem stanu i zostały opisane w specyfikacji http/1.1 (aby uzyskać więcej informacji, zobacz RFC 2616). Wartość domyślna to 10.
Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
Ograniczenie ilości danych opróżnionych z odpowiedzi w celu ponownego użycia połączenia określonego w bajtach. Wartość domyślna to 1 MB.
Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
Granica ustawiona na maksymalny rozmiar części nagłówka odpowiedzi serwera określonej w bajtach. Ta granica chroni klienta przed nieautoryzowanym serwerem próbującym zatrzymać klienta, wysyłając odpowiedź z nieskończoną ilością danych nagłówka. Wartość domyślna to 64 KB.
Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.
WINHTTP_OPTION_PARENT_HANDLE
Pobiera dojście nadrzędne do tego dojścia.
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
Pobiera ciąg zawierający tekst cobranding dostarczony przez serwer logowania usługi Passport. Ta opcja powinna zostać pobrana natychmiast po odpowiedzi serwera logowania za pomocą kodu stanu 401. Aplikacja powinna przekazać rozmiar buforu w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony ciąg.
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
Pobiera ciąg zawierający adres URL grafiki cobranding dostarczonej przez serwer logowania usługi Passport. Ta opcja powinna zostać pobrana natychmiast po odpowiedzi serwera logowania za pomocą kodu stanu 401. Aplikacja powinna przekazać rozmiar buforu w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony ciąg.
WINHTTP_OPTION_PASSPORT_RETURN_URL
Ustawia opcję tylko do odczytu na dojściu żądania, który pobiera adres URL powrotu usługi Passport.
WINHTTP_OPTION_PASSPORT_SIGN_OUT
Ustawia opcję na dojściu sesji, aby wylogować się z wszelkich logowań usługi Passport. Aplikacja powinna przekazać adres URL powrotu usługi Passport pobrany za pomocą WINHTTP_OPTION_PASSPORT_RETURN_URL. Wszystkie pliki cookie związane z zwracanym adresem URL są czyszczone.
WINHTTP_OPTION_PASSWORD
Ustawia lub pobiera wartość ciągu zawierającą hasło skojarzone z uchwytem żądania.
WINHTTP_OPTION_PROXY
Ustawia lub pobiera strukturę WINHTTP_PROXY_INFO zawierającą dane serwera proxy w istniejącym dojściu sesji lub dojściu żądań. Podczas pobierania danych serwera proxy aplikacja musi zwolnić ciągi lpszProxy i lpszProxyBypass zawarte w tej strukturze (jeśli nie mają wartości NULL) przy użyciu funkcji GlobalFree. Aplikacja może wykonywać zapytania dotyczące globalnych danych serwera proxy (domyślnego serwera proxy), przekazując dojście NULL .
WINHTTP_OPTION_PROXY_PASSWORD
Ustawia lub pobiera wartość ciągu zawierającą hasło używane do uzyskiwania dostępu do serwera proxy.
WINHTTP_OPTION_PROXY_SPN_USED
Pobiera główną nazwę serwera proxy podaną przez usługę WinHTTP do interfejsu SSPI podczas uwierzytelniania. Ta wartość ciągu jest używana do przekazywania do elementu SspiPromptForCredentials po niepowodzeniu uwierzytelniania.
WINHTTP_OPTION_PROXY_USERNAME
Ustawia lub pobiera wartość ciągu zawierającą nazwę użytkownika używaną do uzyskiwania dostępu do serwera proxy.
WINHTTP_OPTION_QUIC_STATS
Pobiera strukturę QUIC_STATISTICS zawierającą informacje o połączeniu, takie jak RTT i bajty wysłane i odebrane.
WINHTTP_OPTION_READ_BUFFER_SIZE
Ta opcja jest przestarzała; nie ma żadnego efektu.
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
Określa, czy można pobrać jednostkę odpowiedzi serwera proxy. Ta opcja jest domyślnie wyłączona.
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby poczekać na odebranie wszystkich nagłówków odpowiedzi do żądania. Jeśli usługa WinHTTP nie otrzyma wszystkich nagłówków w tym przedziale czasu, żądanie zostanie anulowane. Domyślna wartość limitu czasu to 90 sekund.
Ten limit czasu jest sprawdzany tylko wtedy, gdy dane są odbierane z gniazda. W związku z tym po wygaśnięciu limitu czasu aplikacja kliencka zostanie powiadomiona, dopóki więcej danych nie dotrze z serwera. Jeśli żadne dane nie docierają z serwera, opóźnienie między wygaśnięciem limitu czasu i powiadomieniem aplikacji klienckiej może być tak duże, jak wartość limitu czasu ustawiona przy użyciu parametru dwReceiveTimeout funkcji WinHttpSetTimeouts .
WINHTTP_OPTION_RECEIVE_TIMEOUT
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby otrzymać częściową odpowiedź na żądanie lub odczytać niektóre dane. Jeśli odpowiedź trwa dłużej niż ta wartość limitu czasu, żądanie zostanie anulowane. Domyślna wartość limitu czasu to 30 sekund.
WINHTTP_OPTION_REDIRECT_POLICY
Ustawia zachowanie winHTTP dotyczące obsługi kodu stanu przekierowania HTTP 30x. Tę opcję można ustawić w sesji lub żądać dojścia do jednej z następujących wartości:
| Termin | Opis |
|---|---|
| WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS | Wszystkie przekierowania są wykonywane automatycznie. |
| WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP | Wszystkie przekierowania są obserwowane, z wyjątkiem tych, które pochodzą z bezpiecznego adresu URL (https) do niezabezpieczonego adresu URL (http). Jest to ustawienie domyślne. |
| WINHTTP_OPTION_REDIRECT_POLICY_NEVER | Przekierowania nigdy nie są obserwowane. Stan 30x jest zwracany do aplikacji. |
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
Odrzuca adresy URL zawierające nazwę użytkownika i hasło. Ta opcja odrzuca również adresy URL zawierające semantyka username:password , nawet jeśli nie określono nazwy użytkownika lub hasła. Na przykład "u:p@hostname", ":@hostname", "u:@hostname" i ":p@nazwa hosta" będą oznaczone jako nieprawidłowe. Jeśli do funkcji zostanie przekazany nieprawidłowy adres URL, zwraca ERROR_WINHTTP_INVALID_URL. Ta opcja jest domyślnie wyłączona.
WINHTTP_OPTION_REQUEST_ANNOTATION
Włącza pobieranie i ustawianie adnotacji żądania dla podanej nazwy adnotacji. Dzięki niemu obiekt wywołujący może dołączyć ciąg do żądania późniejszego pobrania w celu zidentyfikowania żądań przy użyciu dowolnej logiki niestandardowej, którą obiekt wywołujący uzna za przydatny.
WINHTTP_OPTION_REQUEST_PRIORITY
Ta opcja jest przestarzała; nie ma żadnego efektu.
WINHTTP_OPTION_REQUEST_STATS
Retreives statystyki dla żądania. Aby uzyskać listę dostępnych statystyk, zobacz WINHTTP_REQUEST_STATS.
WINHTTP_OPTION_REQUEST_TIMES
Retreives informacji o chronometrażu dla żądania. Aby uzyskać listę dostępnych chronometrażu, zobacz WINHTTP_REQUEST_TIMES.
WINHTTP_OPTION_REQUIRE_STREAM_END
Ta opcja informuje WinHttp o ignorowaniu nagłówków odpowiedzi "Content-Length" i kontynuowaniu odbierania w strumieniu do momentu odebrania flagi END_STREAM.
WINHTTP_OPTION_RESOLUTION_HOSTNAME
Tę opcję można ustawić na dojściu żądania WinHttp przed wysłaniem. W przypadku ustawienia WinHttp użyje ciągu dostarczonego przez obiekt wywołujący jako nazwy hosta na potrzeby rozpoznawania nazw DNS.
WINHTTP_OPTION_RESOLVE_TIMEOUT
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby rozpoznać nazwę hosta. Domyślna wartość limitu czasu to NIESKOŃCZONY. Jeśli określono wartość inną niż domyślna, istnieje obciążenie związane z tworzeniem jednego wątku na rozpoznawanie nazw.
WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT
Przywraca personifikację wątku podczas tworzenia łańcucha certyfikatów serwera, wymuszając zamiast tego użycie tokenu procesu.
WINHTTP_OPTION_SECURE_PROTOCOLS
Ustawia niepodpisaną wartość liczb całkowitych, która określa, które protokoły Secure (HTTPS) są akceptowalne. Wartość domyślna tego ustawienia różni się w zależności od wersji systemu operacyjnego i może mieć wpływ na zainstalowane aktualizacje.
- Windows 11. Domyślnie są włączone tylko protokoły TLS1.2 i TLS1.3.
- Windows 10 i Windows 8.1. Domyślnie są włączone tylko protokoły SSL3, TLS1.0, TLS1.1 i TLS1.2.
- Windows 8 i Windows 7. Domyślnie są włączone tylko protokoły SSL3 i TLS1.
Wartość może być kombinacją co najmniej jednej z następujących wartości.
| Termin | Opis |
|---|---|
| WINHTTP_FLAG_SECURE_PROTOCOL_ALL | Można użyć protokołów Secure Sockets Layer (SSL) 2.0, SSL 3.0 i Transport Layer Security (TLS) 1.0. |
| WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | Można użyć protokołu SSL 2.0. |
| WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | Można użyć protokołu SSL 3.0. |
| WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 | Można użyć protokołu TLS 1.0. |
| WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 | Można użyć protokołu TLS 1.1. |
| WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 | Można użyć protokołu TLS 1.2. |
| WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 | Można użyć protokołu TLS 1.3. |
Jeśli musisz włączyć obsługę nowszych protokołów, ale nie możesz ponownie skompilować aplikacji, aby użyć odpowiednich wartości WINHTTP_OPTION_SECURE_PROTOCOLS, możesz zamiast tego dodać DefaultSecureProtocols wpis rejestru. Ten wpis rejestru umożliwia określenie, które bezpieczne protokoły mają być używane, gdy opcja WINHTTP_OPTION_SECURE_PROTOCOLS nie jest ustawiona.
Ważne
Poniższe instrukcje obejmują modyfikowanie rejestru. Mogą jednak wystąpić poważne problemy, jeśli nieprawidłowo zmodyfikujesz rejestr. W związku z tym należy dokładnie postępować zgodnie z tymi instrukcjami. Aby uzyskać dodatkową ochronę, należy utworzyć kopię zapasową rejestru przed jego zmodyfikowaniem. Następnie możesz przywrócić rejestr, jeśli wystąpi problem. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowej i przywracania rejestru, zobacz Jak utworzyć kopię zapasową i przywrócić rejestr w systemie Windows.
Jeśli aplikacja nie wywołuje winHttpSetOption(WINHTTP_OPTION_SECURE_PROTOCOLS), system sprawdza DefaultSecureProtocols wpis rejestru i, jeśli jest obecny, zastępuje istniejące wartości domyślne systemu operacyjnego protokołami określonymi w wpisie DefaultSecureProtocols rejestru. Określone protokoły WinHTTP mogą zostać unieważnione przez ustawienia konfiguracji protokołu Secure Channel (Schannel), które mogą wyłączać protokoły.
Wpis rejestru można dodać DefaultSecureProtocols w następującej ścieżce:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
Na komputerach opartych na architekturze x64 należy również dodać DefaultSecureProtocols do ścieżki Wow6432Node :
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
Wartość rejestru jest mapą bitową DWORD. Wartość do użycia jest określana przez dodanie wartości odpowiadających żądanym protokołom.
| Wartość DefaultSecureProtocols | Włączono protokół |
|---|---|
| 0x00000008 | Domyślnie włącz protokół SSL 2.0 |
| 0x00000020 | Domyślnie włącz protokół SSL 3.0 |
| 0x00000080 | Domyślnie włącz protokół TLS 1.0 |
| 0x00000200 | Domyślnie włącz protokół TLS 1.1 |
| 0x00000800 | Domyślnie włącz protokół TLS 1.2 |
| 0x00002000 | Domyślnie włącz protokół TLS 1.3 |
Jeśli na przykład chcesz zastąpić wartości domyślne dla WINHTTP_OPTION_SECURE_PROTOCOLS , aby określić protokoły TLS 1.1 i TLS 1.2. W takim przypadku weź wartość protokołu TLS 1.1 (0x00000200) i wartość protokołu TLS 1.2 (0x00000800), dodaj je razem w kalkulatorze (w trybie programisty), a wynikowa wartość rejestru będzie 0x00000A00.
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
Pobiera certyfikat dla serwera SSL/TLS do struktury WINHTTP_CERTIFICATE_INFO . Aplikacja musi zwolnić członków lpszSubjectInfo i lpszIssuerInfo z localfree.
WINHTTP_OPTION_SECURITY_FLAGS
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą flagi zabezpieczeń dla uchwytu. Może to być kombinacja tych wartości:
| Termin | Opis |
|---|---|
| SECURITY_FLAG_IGNORE_CERT_CN_INVALID | Zezwala na nieprawidłową nazwę pospolitą w certyfikacie; oznacza to, że nazwa serwera określona przez aplikację nie jest zgodna z nazwą pospolitą w certyfikacie. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID wywołania zwrotnego. |
| SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | Zezwala na nieprawidłową datę certyfikatu, czyli wygasły lub jeszcze nie obowiązującą. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID wywołania zwrotnego. |
| SECURITY_FLAG_IGNORE_UNKNOWN_CA | Zezwala na nieprawidłowy urząd certyfikacji. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA wywołania zwrotnego. |
| SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE | Umożliwia ustanowienie tożsamości serwera przy użyciu certyfikatu innego niż serwer (na przykład certyfikatu klienta). |
| SECURITY_FLAG_IGNORE_WEAK_SIGNATURE | Umożliwia ignorowanie słabego podpisu. Ta flaga jest dostępna w aktualizacji zbiorczej dla każdego systemu operacyjnego począwszy od systemów Windows 7 i Windows Server 2008 R2. |
| SECURITY_FLAG_SECURE | Używa bezpiecznych transferów. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption. |
| SECURITY_FLAG_STRENGTH_MEDIUM | Używa szyfrowania średniego (56-bitowego). Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption. |
| SECURITY_FLAG_STRENGTH_STRONG | Używa silnego (128-bitowego) szyfrowania. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption. |
| SECURITY_FLAG_STRENGTH_WEAK | Używa słabego (40-bitowego) szyfrowania. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption. |
WINHTTP_OPTION_SECURITY_INFO
Retreives połączenia SChannel i informacji szyfrowania dla żądania.
WINHTTP_OPTION_SECURITY_KEY_BITNESS
Pobiera niepodpisaną wartość długiej liczby całkowitej, która zawiera siłę szyfrowania klucza szyfrowania. Większa liczba wskazuje na silniejsze szyfrowanie siły szyfrowania.
WINHTTP_OPTION_SEND_TIMEOUT
Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby wysłać żądanie lub zapisać dane. Jeśli wysłanie żądania trwa dłużej niż limit czasu, operacja wysyłania zostanie anulowana. Domyślny limit czasu to 30 sekund.
WINHTTP_OPTION_SERVER_CBT
Pobiera wskaźnik do SecPkgContext_Bindings struktury, która określa token powiązania kanału (CBT).
Token powiązania kanału jest właściwością bezpiecznego kanału transportu i służy do powiązania kanału uwierzytelniania z bezpiecznym kanałem transportu. Ten token można uzyskać tylko za pomocą tej opcji po nawiązaniu połączenia SSL.
Uwaga / Notatka
Przekazanie tej opcji i wartości null dla lpBuffer do WinHttpQueryOption zwróci ERROR_INSUFFICIENT_BUFFER i wymagany rozmiar bajtu dla buforu w parametrze lpdwBufferLength . Ta zwrócona wartość rozmiaru buforu może zostać przekazana w kolejnym wywołaniu zapytania dotyczącego tokenu powiązania kanału. Te kroki są niezbędne podczas obsługi WINHTTP_CALLBACK_STATUS_REQUEST, jeśli chcesz zmodyfikować nagłówki żądań na podstawie tokenu powiązania kanału. Należy pamiętać, że systemy Windows XP i Vista nie obsługują modyfikowania nagłówków żądań podczas tego wywołania zwrotnego.
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
Pobiera kontekst łańcucha certyfikacji serwera. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT można przekazać w celu uzyskania zduplikowanego wskaźnika do CERT_CHAIN_CONTEXT dla łańcucha certyfikatów serwera odebranego podczas wynegocjowanego połączenia SSL. Klient musi wywołać element CertFreeCertificateContext na zwróconym wskaźniku PCCERT_CONTEXT wypełnionym w buforze.
WINHTTP_OPTION_SERVER_CERT_CONTEXT
Pobiera kontekst certyfikacji serwera. WINHTTP_OPTION_SERVER_CERT_CONTEXT można przekazać, aby uzyskać zduplikowany wskaźnik do kontekstu certyfikatu certyfikatu certyfikatu serwera odebranego podczas wynegocjowanego połączenia SSL. Klient musi wywołać element CertFreeCertificateContext na zwróconym wskaźniku PCCERT_CONTEXT wypełnionym w buforze.
WINHTTP_OPTION_SERVER_SPN_USED
Pobiera główną nazwę serwera, która winHTTP została dostarczona do interfejsu SSPI podczas uwierzytelniania. Tę wartość ciągu można przekazać do elementu SspiPromptForCredentials po niepowodzeniu uwierzytelniania.
WINHTTP_OPTION_SPN
Dołącza lub usuwa numer portu serwera, gdy nazwa SPN (nazwa główna usługi) jest tworzona na potrzeby uwierzytelniania Kerberos lub Negotiate Kerberos. Ta flaga jest jedną z następujących wartości:
| Termin | Opis |
|---|---|
| WINHTTP_DISABLE_SPN_SERVER_PORT | Usuwa numer portu serwera. |
| WINHTTP_ENABLE_SPN_SERVER_PORT | Zawiera numer portu serwera. |
WINHTTP_OPTION_STREAM_ERROR_CODE
Ta opcja może być odpytywana na dojściu żądania WinHttp i zwróci kod błędu wskazany przez ramkę RST_STREAM odebraną na strumieniu HTTP.
WINHTTP_OPTION_TCP_FAST_OPEN
Włącza protokół TCP Fast Open dla połączenia.
WINHTTP_OPTION_TCP_KEEPALIVE
Tę opcję można ustawić na dojściu sesji WinHttp, aby włączyć zachowanie utrzymywania aktywności protokołu TCP w bazowym gniazdie. Przyjmuje tcp_keepalive struktury.
WINHTTP_OPTION_TLS_FALSE_START
Włącza protokół TLS False Start dla połączenia.
WINHTTP_OPTION_TCP_PRIORITY_STATUS
Wykonaj zapytanie o sugerowany priorytet zestawu gniazd TCP przy użyciu WINHTTP_OPTION_TCP_PRIORITY_HINT. Aby uzyskać więcej informacji, zobacz dokumentację SIO_SET_PRIORITY_HINT .
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
Tę opcję można ustawić na dojściu sesji WinHttp w celu kontrolowania, czy powrót do protokołu TLS 1.0 jest dozwolony, jeśli występuje błąd uzgadniania PROTOKOŁU TLS z nowszą wersją protokołu.
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
Przyjmuje zdarzenie, które zostanie ustawione po zakończeniu ostatniego wywołania zwrotnego dla określonej sesji. Ta flaga musi być używana w dojściu sesji. Nie można zamknąć zdarzenia, dopóki nie zostanie ono ustawione przez winHTTP.
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
Ta opcja jest zarezerwowana do użytku wewnętrznego i nie powinna być wywoływana.
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
Nakazuje stosowi rozpoczęcie procesu uzgadniania protokołu WebSocket za pomocą polecenia WinHttpSendRequest. Ta opcja nie przyjmuje żadnych parametrów.
WINHTTP_OPTION_URL
Pobiera wartość ciągu zawierającą pełny adres URL pobranego zasobu. Jeśli oryginalny adres URL zawierał dodatkowe dane, takie jak ciągi wyszukiwania lub kotwice, lub jeśli wywołanie zostało przekierowane, zwrócony adres URL różni się od oryginalnego. Aplikacja powinna przekazać bufor o rozmiarze w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony adres URL w szerokim znaku.
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
Przyjmuje wartość LOGICZNĄ i można ustawić tylko dojście sesji. Będzie ona propagowana tylko w dół do obsługi utworzonych na podstawie dojścia sesji po ustawieniu opcji. Jeśli wartość TRUE, ta opcja powoduje, że w ostateczności użycie poświadczeń serwera globalnego, które zostały wypchnięte z systemu WinInet. Wartość domyślna dla tej opcji to FALSE. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet.
WINHTTP_OPTION_USE_SESSION_SCH_CRED
Umożliwia ustawienie pojedynczego poświadczenia domyślnie używanego dla wszystkich punktów końcowych w sesji zamiast poświadczeń domyślnych dla poszczególnych punktów końcowych. Może to poprawić wydajność, zmniejszając obciążenie związane z zarządzaniem poświadczeniami. Należy pamiętać, że to domyślne poświadczenie nie będzie miało wpływu, gdy zostanie jawnie udostępniony certyfikat klienta.
WINHTTP_OPTION_USER_AGENT
Ustawia lub pobiera ciąg agenta użytkownika na dojściach dostarczonych przez winHttpOpen i używany w kolejnych funkcjach WinHttpSendRequest , o ile nie jest on zastępowany przez nagłówek dodany przez WinHttpAddRequestHeaders lub WinHttpSendRequest. Podczas pobierania agenta użytkownika aplikacja powinna przekazać bufor o rozmiarze w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony adres URL w szerokim znaku. Podczas ustawiania agenta użytkownika rozmiar buforu jest długością ciągu w postaci znaków oraz terminatorem NULL .
WINHTTP_OPTION_USERNAME
Ustawia lub pobiera ciąg zawierający nazwę użytkownika.
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
Ustawia czas w milisekundach, który WinHttpWebSocketClose powinien czekać, aby zakończyć uzgadnianie zamknięcia. Wartość domyślna to 10 sekund.
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
Ustawia interwał (w milisekundach), aby wysyłać pakiet keep-alive za pośrednictwem połączenia. Domyślny interwał to 30000 (30 sekund). Minimalny interwał to 15000 (15 sekund). Ustawienie wartości niższej niż 15000 zostanie zwrócone przy użyciu polecenia WinHttpSetOption z ERROR_INVALID_PARAMETER.
Uwaga / Notatka
Wartość domyślna dla WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL jest odczytywana z HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval. Jeśli wartość nie zostanie ustawiona, zostanie użyta wartość domyślna 30000. Nie można mieć mniejszego interwału utrzymania niż 15000 milisekund.
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
Ustawia lub pobiera dword, który określa rozmiar buforu odbierania, który ma być używany w połączeniach protokołu WebSocket.
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
Ustawia lub pobiera dword, który określa rozmiar buforu wysyłania, który ma być używany w połączeniach protokołu WebSocket.
WINHTTP_OPTION_WORKER_THREAD_COUNT
Ustawia niepodpisaną długą wartość całkowitą określającą liczbę wątków roboczych, których pula wątków powinna używać do uzupełniania asynchronicznego. Wartość domyślna tej opcji to zero, która określa, że liczba wątków roboczych jest równa liczbie procesorów CPU w systemie. Tę opcję można ustawić tylko na dojściu NULL COSMOSNET przed wystąpieniem operacji asynchronicznej. Tę opcję można ustawić tylko raz.
Dotyczy: Windows 7 i nowsze; Windows Server 2008 R2 lub nowszy.
WINHTTP_OPTION_WRITE_BUFFER_SIZE
Ta opcja jest przestarzała; nie ma żadnego efektu.
Uwagi
W poniższej tabeli wymieniono flagi opcji, określając dojścia, na które mogą działać, czy można wykonywać zapytania i ustawiać, oraz używany typ danych. Znak "X" wskazuje, że flaga opcji jest prawidłowa do użycia z funkcją lub uchwytem, podczas gdy "-" określa, że flaga opcji jest nieprawidłowa.
Próba ustawienia lub kwerendy flagi opcji w wersji systemu Windows, w której nie jest obsługiwana, spowoduje ERROR_WINHTTP_INVALID_OPTION.
| Flaga opcji i typ danych | Uchwyt sesji | Obsługa żądań | Opcja kwerendy | Opcja SET | Minimalna wersja systemu Windows |
|---|---|---|---|---|---|
| WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS BOOL |
X | - | - | X | - |
| WINHTTP_OPTION_AUTOLOGON_POLICY DWORD |
- | X | - | X | - |
| WINHTTP_OPTION_BACKGROUND_CONNECTIONS DWORD |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_CALLBACK LPVOID |
X | X | X | X | - |
| WINHTTP_OPTION_CLIENT_CERT_CONTEXT CERT_CONTEXT |
- | X | - | X | Windows Vista |
| WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST SecPkgContext_IssuerListInfoEx |
- | X | X | - | Windows Vista |
| WINHTTP_OPTION_CODEPAGE DWORD |
X | - | - | X | - |
| WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH DWORD |
X | - | - | X | - |
| WINHTTP_OPTION_CONNECT_RETRIES DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_CONNECT_TIMEOUT DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_CONNECTION_INFO WINHTTP_CONNECTION_INFO |
- | X | X | - | - |
| WINHTTP_OPTION_CONNECTION_STATS_V0 TCP_INFO_v0 |
- | X | X | - | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_CONNECTION_STATS_V1 TCP_INFO_v1 |
- | X | X | - | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_CONTEXT_VALUE DWORD_PTR |
X | X | X | X | - |
| WINHTTP_OPTION_DECOMPRESSION DWORD |
X | X | - | X | Windows 8.1 |
| WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING BOOL |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_DISABLE_FEATURE DWORD |
- | X | - | X | - |
| WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK BOOL |
X | - | - | X | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_DISABLE_STREAM_QUEUE BOOL |
X | X | - | X | Windows 10 w wersji 1809 |
| WINHTTP_OPTION_ENABLE_FEATURE DWORD |
* | * | - | X | - |
| WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL DWORD |
X | X | - | X | Windows 10 w wersji 1607 |
| WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT BOOL |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_ENABLETRACING DWORD |
- | - | X | X | - |
| WINHTTP_OPTION_ENCODE_EXTRA BOOL |
X | X | - | X | Windows 10 w wersji 1803 |
| WINHTTP_OPTION_EXPIRE_CONNECTION N/A |
- | X | - | X | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_EXTENDED_ERROR DWORD |
X | X | X | - | - |
| WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION BOOL |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_GLOBAL_PROXY_CREDS WINHTTP_CREDS |
X | X | - | X | - |
| WINHTTP_OPTION_GLOBAL_SERVER_CREDS WINHTTP_CREDS_EX |
X | X | - | X | - |
| WINHTTP_OPTION_HANDLE_TYPE DWORD |
X | X | X | - | - |
| WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED BOOL |
X | X | - | X | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_HTTP_PROTOCOL_USED DWORD |
- | X | X | - | Windows 10 w wersji 1607 |
| WINHTTP_OPTION_HTTP_VERSION HTTP_VERSION_INFO |
X | X | X | X | - |
| WINHTTP_OPTION_HTTP2_KEEPALIVE DWORD |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING BOOL |
X | X | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE BOOL |
- | X | - | X | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_IPV6_FAST_FALLBACK BOOL |
X | - | - | X | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE BOOL |
X | X | X | - | - |
| WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER DWORD |
X | - | X | X | - |
| WINHTTP_OPTION_MAX_CONNS_PER_SERVER DWORD |
X | - | X | X | - |
| WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_PARENT_HANDLE SIEĆ ZAPLECZA |
X | X | X | - | - |
| WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT LPWSTR |
- | X | X | - | - |
| WINHTTP_OPTION_PASSPORT_COBRANDING_URL LPWSTR |
- | X | X | - | - |
| WINHTTP_OPTION_PASSPORT_RETURN_URL LPVOID |
- | X | X | - | - |
| WINHTTP_OPTION_PASSPORT_SIGN_OUT LPVOID |
X | - | - | X | - |
| WINHTTP_OPTION_PASSWORD LPWSTR |
- | X | X | X | - |
| WINHTTP_OPTION_PROXY WINHTTP_PROXY_INFO |
X | X | X | X | - |
| WINHTTP_OPTION_PROXY_PASSWORD LPWSTR |
- | X | X | X | - |
| WINHTTP_OPTION_PROXY_SPN_USED LPWSTR |
- | X | X | - | - |
| WINHTTP_OPTION_PROXY_USERNAME LPWSTR |
- | X | X | X | - |
| WINHTTP_OPTION_READ_BUFFER_SIZE DWORD |
- | X | X | X | - |
| WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE BOOL |
X | X | - | X | - |
| WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_RECEIVE_TIMEOUT DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_REDIRECT_POLICY DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_REJECT_USERPWD_IN_URL BOOL |
- | X | - | X | - |
| WINHTTP_OPTION_REQUEST_PRIORITY DWORD |
- | X | X | X | - |
| WINHTTP_OPTION_REQUEST_STATS WINHTTP_REQUEST_STATS |
- | X | X | - | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_REQUEST_TIMES WINHTTP_REQUEST_TIMES |
- | X | X | - | Windows 10 w wersji 1903 |
| WINHTTP_OPTION_REQUIRE_STREAM_END BOOL |
X | X | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_RESOLUTION_HOSTNAME LPWSTR |
- | X | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_RESOLVE_TIMEOUT DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_SECURE_PROTOCOLS DWORD |
X | - | - | X | - |
| WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT WINHTTP_CERTIFICATE_INFO |
- | X | X | - | - |
| WINHTTP_OPTION_SECURITY_FLAGS DWORD |
- | X | X | X | - |
| WINHTTP_OPTION_SECURITY_INFO WINHTTP_SECURITY_INFO |
- | X | X | - | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_SECURITY_KEY_BITNESS DWORD |
- | X | X | - | - |
| WINHTTP_OPTION_SEND_TIMEOUT DWORD |
X | X | X | X | - |
| WINHTTP_OPTION_SERVER_CBT SecPkgContext_Bindings* |
- | X | X | - | - |
| WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT |
- | X | X | - | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_SERVER_CERT_CONTEXT KONTEKST CERTYFIKATU |
- | X | X | - | - |
| WINHTTP_OPTION_SERVER_SPN_USED LPWSTR |
- | X | X | - | - |
| WINHTTP_OPTION_SPN DWORD |
- | X | - | X | - |
| WINHTTP_OPTION_STREAM_ERROR_CODE DWORD |
- | X | X | - | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_TCP_FAST_OPEN BOOL |
X | - | - | X | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_TCP_KEEPALIVE tcp_keepalive |
X | - | - | X | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_TLS_FALSE_START BOOL |
X | - | - | X | Windows 10 w wersji 2004 |
| WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK BOOL |
X | - | - | X | Windows 10 w wersji 21H1 |
| WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT SIEĆ ZAPLECZA |
X | - | - | X | - |
| WINHTTP_OPTION_UNSAFE_HEADER_PARSING DWORD |
- | X | - | X | - |
| WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET N/A |
- | X | - | X | - |
| WINHTTP_OPTION_URL LPWSTR |
- | X | X | - | - |
| WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS BOOL |
X | X | - | X | - |
| WINHTTP_OPTION_USER_AGENT LPWSTR |
X | - | X | X | - |
| WINHTTP_OPTION_USERNAME LPWSTR |
- | X | X | X | - |
| WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT DWORD |
- | - | X | X | - |
| WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL DWORD |
- | - | X | X | - |
| WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
| WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
| WINHTTP_OPTION_WORKER_THREAD_COUNT DWORD |
- | - | - | X | - |
| WINHTTP_OPTION_WRITE_BUFFER_SIZE DWORD |
- | X | X | X | - |
Uwaga / Notatka
W przypadku systemów Windows XP i Windows 2000 zobacz wymaganiaRun-Time.
Wymagania
| Wymaganie | Wartość |
|---|---|
| Minimalny obsługiwany klient | Windows XP, Windows 2000 Professional z dodatkiem SP3 [tylko aplikacje klasyczne] |
| Minimalny obsługiwany serwer | Windows Server 2003, Windows 2000 Server z dodatkiem SP3 [tylko aplikacje klasyczne] |
| Redistributowalny | WinHTTP 5.0 i Internet Explorer 5.01 lub nowszy w systemach Windows XP i Windows 2000. |
| Nagłówek | Winhttp.h |