2017-02-27 1 views
1

Y at-il un moyen de passer le cookie à la méthode Navigate de IWebBrowser. Dans la mesure où je ne peux pas voir passer l'en-tête Cookie dans les en-têtes ni InternetSetCookie/InternetSetCookieEx fonctionne avec IE11.Y at-il un moyen de passer un cookie à IWebBrowser2 naviguer

La seule méthode de travail que j'ai trouvée est de mettre cookie via put_cookie de IHTMLDocument2, mais pour cela vous devez d'abord charger la page.

Est-il possible de passer un cookie au premier appel de Navigate?

Répondre

1

Vous pouvez essayer IESetProtectedModeCookie si vous interagissez avec des contrôles de navigateur de faible intégrité. Cela a encore des limites comme indiqué dans this cookie FAQ:

IE10 + sous Windows 8+ amélioré introduit le mode protégé qui utilise AppContainers (plutôt que les niveaux d'intégrité) pour l'isolement. EPM ne propose pas d'API pour interagir avec les cookies; IESetProtectedModeCookie ne définit pas le cookie à l'intérieur d'un AppContainer .

La création d'AppContainers n'est pas documentée, donc je suppose que votre processus n'est pas exécuté dans un AppContainer?

This newsgroup thread confirme que vous ne pouvez pas définir un cookie dans les en-têtes:

Dans le cas où quelqu'un est intéressé, je suis passé par le soutien de Microsoft à en savoir plus à ce sujet. Leur réponse: ce que je veux faire n'est pas pris en charge. L'argument 'headers' de Navigate/Navigate2 NE PEUT PAS être utilisé pour configurer les cookies.

Je devine que rafraîchir la page après put_cookie est inacceptable?

+0

Votre lien indique que IESetProtectedModeCookie - Appelle le standard InternetSetCookieEx, donc je ne pense pas que cela fera une différence pour l'appel direct. – elevener

+0

> Je suppose que rafraîchir la page après put_cookie est inacceptable? En ce moment, je fais exactement cela, mais ce n'est pas souhaitable. – elevener

+0

IESetProtectedModeCookie appelle InternetSetCookieEx dans le bon contexte. Vous n'avez fourni aucune information sur votre application, donc je ne sais pas si c'est pertinent mais sur Vista + IE il y a deux emplacements de stockage pour les cookies. – Anders