gpt4 book ai didi

vb.net - WebBrowser 控件和 cookie

转载 作者:行者123 更新时间:2023-12-03 03:33:17 24 4
gpt4 key购买 nike

我对 WebBrowser 控件和 cookie 有疑问。

首先,当人们在普通的 Web 浏览器(在我的例子中为 IE9)中导航时会发生什么:

1.1。我打开网页http://www.gmail.com .

我输入我的用户名/密码,
我将“保持登录状态”复选框未选中,然后点击“登录”,
IE9 打开我的 GMail 页面,其中列出了我的所有邮件。没关系。

1.2。 GMail页面顶部有很多“日历”、“文档”等链接。

当我单击“文档”链接时,我的文档页面将在 IE9 中的单独选项卡中打开。无需询问名称/密码等额外登录信息。这也不错。

现在,当我在 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。我在 WebBrowser 控件中输入我的 GMail 登录信息(名称和密码),

2.3。当我单击“文档”链接时,将打开 IE9 的新实例,

2.4。 Google 没有显示我的文档列表,而是要求我在 IE9 窗口中再次登录。为什么?为什么我必须再次输入我的凭据?

我认为 cookie 有问题,它们在步骤 2.2 中设置不正确。您是否知道哪里出了问题以及必须采取哪些措施才能正确设置 cookie?

提前致谢,
萨尔

其他信息:

我的 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 页面时重复使用。

最佳答案

那是因为 Web 浏览器控件正在单独的 IE9 窗口中打开您的链接,对吧?如果您打开它,或者在 Winforms 程序的另一个 Web 浏览器控制窗口中打开它,或者在您单击链接的同一窗口中打开它,那么它应该可以正常工作。

它们使用 session cookie(在内存中)来保存您的登录信息,而不是写入硬盘驱动器的信息,这就是为什么当您运行另一个进程时,信息(在内存 session cookie中)不存在或传播到新流程。

因此,要拦截链接点击并在您选择的 wb 窗口中打开它,您需要拦截 newwindow 事件,取消导航并使用 .navigate 重新导航到您选择的 wb,如果您需要此帮助我知道,但是网上有很多。

此外,请记住,网络浏览器控件默认使用 IE7,即使您安装了 IE9,也可以通过注册表进行更改。

关于vb.net - WebBrowser 控件和 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com