簡體   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