У меня проблема с управлением веб-браузером и файлами cookie.
Прежде всего, что происходит, когда пользователь перемещается в обычном веб-браузере (в моем случае IE9):
1.1.Я открываю веб-страницу http://www.gmail.com.
Я ввожу свое имя пользователя / пароль,
Я оставляю флажок " Оставайтесь в системе " не проверено и нажимаю " Войти",
IE9 открывает мою страницу GMail со всеми моими письмами в списке.Это нормально.
1.2.В верхней части страницы GMail есть много ссылок, таких как «Календарь», «Документы» и т. Д.
Когда я нажимаю ссылку «Документы», страница моих документов открывается на отдельной вкладке в IE9.Никакой дополнительной информации для входа в систему, так как имя / psw не запрашивается.Это тоже хорошо.
Теперь, что происходит, когда я повторяю все это в элементе управления WebBrowser (я создал очень простое приложение VB.NET с одним элементом управления WebBrowser).
2.1.В случае загрузки формы выполняется следующий код:
Private Sub MyForm_Load(sender As System.Object, e As System.EventArgs)<br>
Me.MyWebBrowser.Navigate("http://www.gmail.com")<br>
End Sub
2.2.Я ввожу свою регистрационную информацию GMail (имя и psw) в элемент управления WebBrowser,
2.3.Когда я нажимаю ссылку «Документы», открывается новый экземпляр IE9,
2.4.Вместо того, чтобы показывать список моих документов, Google просит меня снова войти в окно IE9.Зачем?Почему я должен снова вводить свои учетные данные?
Я думаю, что что-то не так с куки-файлами, и они неправильно настроены на шаге 2.2.У вас есть какие-либо идеи, что не так и что нужно сделать, чтобы правильно установить куки?
Заранее спасибо,
Sal
Дополнительная информация:
У меня естьмоя функция события WebBrowser NewWindow реализована следующим образом:
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
Я считаю, что метод InternetSetCookie () должен постоянно сохранять файлы cookie в каталоге «C: \ Users \ Administrator \ AppData \ Roaming \ Microsoft \ Windows \ Cookies» дляповторно использовать при открытии страницы Google, требующей авторизации.