Contrôle WebBrowser et les cookies

J'ai un problème avec contrôle WebBrowser et les cookies.

Tout d'abord ce qui se passe lorsque l'on navigue dans un navigateur Web normal (IE9 dans mon cas):

1.1. J'ai ouvert la page Web http://www.gmail.com.

- Je entrer mon nom d'utilisateur /mot de passe,

Je laisse la case "Rester connecté" décoché et cliquez sur "Signe dans",

IE9 ouvre ma page GMail avec tous mes mails de la liste. C'est OK.

1.2. En haut de la page GMail, il y a beaucoup de liens comme "Calendrier", "Documents", etc.

Quand je clique sur le "lien" Documents, mes documents page est ouverte dans un onglet séparé dans IE9. Pas de connexion supplémentaires informations nom /psw est demandé. C'est bien aussi.

Maintenant, ce qui se passe lorsque je le répète, tout ce qui dans le contrôle WebBrowser (j'ai créé un très simple VB.NET application avec un seul contrôle WebBrowser).

2.1. Dans l'événement load du formulaire le code suivant est exécuté:


Private Sub MyForm_Load(sender As System.Object, e As System.EventArgs)
Me.MyWebBrowser.Navigate("http://www.gmail.com")
End Sub

2.2. - Je saisir mon GMail informations de connexion (nom et psw) dans le contrôle WebBrowser,

2.3. Lorsque je clique sur le "lien" Documents, une nouvelle instance de IE9 est ouvert,

2.4. Au lieu de montrer une liste de mes documents, Google me demande de me connecter à nouveau dans une IE9 fenêtre. Pourquoi? Pourquoi je dois entrer mon mot de passe à nouveau?

Je pense qu'il ya quelque chose de mal avec des témoins, et ils ne sont pas définies correctement dans une étape 2.2. Avez-vous des idées de ce qui est mal et ce qui doit être fait pour obtenir des cookies réglé correctement?

Merci d'avance,

Sal

Informations supplémentaires:

J'ai mon WebBrowser NewWindow fonction d'événement mis en œuvre comme:

Private Sub MyWebBrowser_NewWindow(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles MyWebBrowser.NewWindow
    Dim CookiesArr As String() = MyWebBrowser.Document.Cookie.Split(";")
    For Each Cookie In CookiesArr
        Dim Idx As Long = Cookie.IndexOf("=")
        If Idx <> -1 Then
            Dim CookieName As String = Cookie.Substring(0, Idx).Trim
            Dim CookieValue As String = Cookie.Substring(Idx + 1).Trim
            InternetSetCookie("http://www.google.com", Nothing, CookieName + " = " + CookieValue + "; expires = Sat,05-Jan-2013 00:00:00 GMT")
        End If
    Next
End Sub

Je crois que InternetSetCookie() la méthode doit stocker des cookies de façon permanente dans "C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies" répertoire pour les réutiliser lors de la page de Google, nécessitant une autorisation, est ouvert.

OriginalL'auteur Sal | 2012-03-09