Définition des configurations du proxy WinINet dans WinHTTP
Définition du proxy automatique sur WinHTTP 5,1
Les applications qui portent à partir de WinINet vers WinHTTP peuvent avoir besoin d’utiliser les mêmes paramètres de proxy autorécupérables sous WinINet ou Internet Explorer (IE). L’API WinHTTP version 5,1 peut récupérer et utiliser ces paramètres de proxy. En général, WinHTTP spécifie les serveurs proxy et proxy de contournement par session lors de la création de la session. Ces paramètres peuvent être remplacés par demande.
Pour utiliser la même configuration de proxy que WinINet ou IE, le client WinHTTP doit définir des paramètres de proxy pour la session. En outre, si IE ou WinINet sont configurés pour utiliser le protocole WPAD (Web Proxy Auto-Discovery), le client WinHTTP qui utilise ces paramètres doit définir des paramètres de proxy pour chaque demande. Les sections suivantes décrivent comment spécifier les paramètres de proxy pour une session et une demande :
- Définition de la configuration du proxy sur une session
- Définition de la configuration du proxy sur une demande unique
Définition de la configuration du proxy sur une session
L’application est en cours d’exécution sur un compte d’utilisateur
Avant la création d’une session, l’application appelle WinHttpGetIEProxyConfigForCurrentUser pour obtenir les paramètres du proxy IE. L’application doit s’exécuter en tant que compte d’utilisateur pour obtenir ces paramètres. Le paramètre pProxyConfig est un pointeur vers une structure de _ _ _ _ _ configuration de proxy Internet Explorer de l’utilisateur courant WinHTTP qui contient le nom du proxy (LpszProxy) et les serveurs de contournement du proxy (lpszProxyBypass). Le nom du proxy et les valeurs de contournement du proxy de la structure de _ _ _ _ _ configuration du proxy IE de l’utilisateur actuel sont ensuite utilisés pour initialiser la session WinHTTP. La session est initialisée en appelant WinHttpOpen avec les paramètres pwszProxyName et pwszProxyBypass obtenus à partir des membres lpszProxy et lpszProxyBypass de la structure de _ _ _ _ _ configuration du proxy IE de l’utilisateur actuel WinHTTP .
L’application s’exécute en tant que service
L’application doit s’assurer que les paramètres du Registre pour un utilisateur individuel sont chargés dans le registre avant d’appeler WinHttpGetIEProxyConfigForCurrentUser. Si ces paramètres ne sont pas chargés dans le registre, WinHttpGetIEProxyConfigForCurrentUser ne peut pas obtenir les paramètres du proxy. Les paramètres du Registre pour un utilisateur individuel peuvent être chargés dans le registre en appelant la fonction LoadUserProfile . Si le chargement des paramètres du registre de l’utilisateur n’est pas une option, l’application peut appeler WinHttpOpen avec le _ _ _ _ proxy par défaut du type d’accès WinHTTP spécifié dans le paramètre dwAcessType . La spécification du proxy par défaut dans l’appel à WinHttpOpen indique à l’API WinHTTP de récupérer le jeu de configuration du proxy à l’aide de l’utilitaire de proxycfg.exe WinHTTP. Une fois que les paramètres du Registre pour un utilisateur individuel ont été chargés, l’application suit les étapes décrites dans l’application s’exécute sur un compte d’utilisateur pour définir le nom du proxy et les serveurs de contournement du proxy.
Définition de la configuration du proxy sur une demande unique
Avant la création de la session, l’application appelle WinHttpGetIEProxyConfigForCurrentUser pour déterminer si WinInet et IE sont configurés pour utiliser WPAD. WinHttpGetIEProxyConfigForCurrentUser retourne la structure de _ _ _ _ _ configuration du proxy IE de l’utilisateur actuel WinHTTP qui contient le membre fAutoDetect . La valeur true pour ce membre indique que le protocole WPAD est utilisé et que le membre LPSZAUTOCONFIGURL contient l’URL WPAD.
La configuration automatique du proxy est utilisée
Si WPAD est utilisé, l’application appelle WinHttpGetProxyForUrl pour récupérer le proxy de la demande. Le paramètre lpwszUrl contient l’URL à laquelle la demande est envoyée, et le paramètre pAutoProxyOptions contient un pointeur vers la structure (_ _ options AutoProxy WinHTTP) qui contient les options du proxy AutoProxy. L’application initialise la structure des _ _ options de proxy automatique WinHTTP avec les paramètres retournés à partir de la structure de _ _ _ _ _ configuration du proxy IE de l’utilisateur actuel WinHTTP dans l’appel à WinHttpGetIEProxyConfigForCurrentUser. L’indicateur d’URL de configuration du PROXY automatique WinHTTP est spécifié dans le membre dwFlags de la structure des options de _ proxy _ automatique WinHTTP et le membre lpszAutoconfigUrl contient l’URL de configuration automatique du proxy de la structure de configuration _ _ _ de _ _ _ _ _ proxy d’utilisateur active WinHTTP . La fonction WinHttpGetProxyForUrl retourne le nom du proxy et la liste de contournement du proxy dans les membres lpszProxy et lpszProxyBypass de la structure d' _ _ informations du proxy WinHTTP .
Une fois que le proxy pour la requête est obtenu à partir de WinHttpGetProxyForUrl, l’application crée la demande avec WinHttpOpenRequest. WinHttpSetOption est alors appelé pour définir le proxy pour la demande en spécifiant le handle de requête dans le paramètre hInternet . Le paramètre valeur dwOption dans l’appel à WinHttpSetOption doit avoir la valeur WinHTTP _ option _ proxy et le paramètre lpBuffer est un pointeur vers une structure d' _ _ informations proxy WinHTTP qui contient le proxy et le contournement du proxy à utiliser pour la requête.
La configuration automatique du proxy n’est pas utilisée
Si l’appel à WinHttpGetIEProxyConfigForCurrentUser indique que le proxy AutoProxy n’est pas utilisé, l’application peut simplement créer la demande avec WinHttpOpenRequest. La configuration du proxy est la même pour l’ensemble de la session et les modifications par demande ne sont pas nécessaires.