繁体   English   中英

使用2个WebBrowser控件并在C#中处理HTTPONLY cookie

[英]Using 2 WebBrowser controls and dealing with HTTPONLY cookies in C#

在我的应用程序中,我必须使用WebBrowser Control登录,然后使用HttpWebRequest访问站点,以实现此目的,我必须将cookie从WebBrowser Control传输到HttpWebRequestCookieContainer 我正在使用以下代码来实现这一目标。

this._cookieContainer.SetCookies(uri,GetGlobalCookies(uri));

这里

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref uint pcchCookieData, int dwFlags, IntPtr lpReserved);
const int INTERNET_COOKIE_HTTPONLY = 0x00002000;

public static string GetGlobalCookies(string uri)
{
    uint datasize = 1024;
    StringBuilder cookieData = new StringBuilder((int)datasize);
    if (InternetGetCookieEx(uri, null, cookieData, ref datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero)
        && cookieData.Length > 0)
    {
        return cookieData.ToString().Replace(';', ',');
    }
    else
    {
        return null;
    }
}

到现在GetGlobalCookies(string uri)这段代码可以正常工作,但是我正尝试使用2个WebBrowser控件登录到同一网站但使用不同的帐户,并且由于方法GetGlobalCookies(string uri)是静态的,因此我该如何不同地对待2个WebBrowser控件呢?

实际上,在这里我能够使用1个WebBrowser控件登录到1个帐户,但是在此之后,如果我尝试使用另一个WebBrowser控件登录到另一个帐户,它会自动重定向到第一个帐户。 如何处理。

这里的实际问题是使用2个WebBrowser控件。 因此,为了解决这个问题,我必须同步使用InternetSetCookieEx / InternetGetCookieEx API的饼干在解释这个岗位

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM