从c#窗口窗体中的文本文件导入cookie

本文关键字:文本 文件 导入 cookie 窗口 窗体 | 更新日期: 2023-09-27 18:07:10

大家好,我想在Vb程序中导入cookie与web浏览器一起使用。这些cookie保存在从firefox导出的文本文件中,使用一个名为高级cookie管理器。这是youtube和google帐户cookie的全文文件内容。

    accounts.google.com FALSE   /   TRUE    0   GALX    6eHg_ah2OcA
accounts.google.com FALSE   /   TRUE    0   GoogleAccountsLocale_session    en
accounts.google.com FALSE   /   TRUE    0   GAPS    1:_Nr1hdAKxmmjavGHMMvU0mmYvqJE8A:Nc1AzVmN-IKZb3oq
accounts.google.com FALSE   /   TRUE    0   LSID    s.DE|s.youtube|talk|youtube:DQAAALoAAADgCb0yghM0OyhoTEOWeKd__922mYyKa3H0yBIs5jGOfSbMfP6C76Ao7YBT3chA3BA4zmqB3w5so99qg0QzJgh4LmocSsTuOc7aAraSsUH0dxfz0lJpoWxYx7f3hXI1HB2XP6YVtlpHZi-VAjsaaRDLanfpMddm73RtUnlu4xSJoNAgF0xJNogs_Of4EPAssrchOowBKcdM1-P-aQMy7rgvo5V5RF1RxTVZ8dyWRdqk8ocqEk09M-dld3fLm7cZB7g
.youtube.com    TRUE    /   FALSE   0   VISITOR_INFO1_LIVE  2S8cjkP9HuI
.youtube.com    TRUE    /   FALSE   0   use_hitbox  d5c5516c3379125f43aa0d495d100d6ddAEAAAAw
.youtube.com    TRUE    /   TRUE    0   SSID    A6maF6dfv-b3voGtv
.youtube.com    TRUE    /   TRUE    0   SAPISID q2lzZ6EO9sD4zfaO/Ag61mffuXQhzbTylQ
.youtube.com    TRUE    /   TRUE    0   HSID    Al2Ze5_OdWHfE-lKA
.youtube.com    TRUE    /   TRUE    0   APISID  dCxiK0RIWXVF4ss9/ADUW4MrNC4wbMNIZo
.youtube.com    TRUE    /   FALSE   0   PREF    f1=50000000&fv=0.0.0
.youtube.com    TRUE    /   FALSE   0   ACTIVITY    1358853848282
.youtube.com    TRUE    /   TRUE    0   demographics    b5b9b36b16b837de11794f76ac5adc24e3QGAAAAZ2VuZGVydAEAAABtdAMAAABhZ2VpHgAAADA=
.youtube.com    TRUE    /   TRUE    0   SID DQAAALkAAABYU1N6s7Wc4ckiyqekON91HZLX2WNwPAtmyu82zizR8ahweELmw13pWScKM0DWZMn3DrGU4L-ycQQpQ2EirWKdJ0zfjdGZh3iZCfYhDZcCfDgAqSmWpbGS8UW0tbkapa7hTyoSlmu342A7xWtzujGSVW94RvmXmKc7f9U6jKQ55rTABiaoiZ3DEYqDjb2pSfGu9x1wRSTpDH09nGT_rvN-IPr6Exy9aLErbk0VHhjeQVD-a93jPbKs_71T9gGmr00
.youtube.com    TRUE    /   TRUE    0   LOGIN_INFO  ad4923957f199d9967473fbb9efc6facc3cAAAB7IjEiOiAxLCAiMiI6ICJSWVh2cXhhMHRMQmZaUHowTEpSdGFRPT0iLCAiMyI6IDEzNjEyNDgyMDYsICI0IjogIkdBSUEiLCAiNiI6IGZhbHNlLCAiNyI6IDEzNTg5NTY1ODAsICI4IjogNTMwMDM1NDIxMzY3fQ==`

我想知道的是:我如何使用这些文本文件或其内容与Vb web浏览器。

从c#窗口窗体中的文本文件导入cookie

InternetSetCookie函数应该仍然可以工作

http://netpl.blogspot.com/2008/09/property-of-mshtmlihtmldocument2-does.html

您需要解析您的文件(简单),然后为每个cookie调用该方法。WebBrowser应该会拾取cookie,我们在过去几次使用过这种技术。

我假设你想使用WinForms WebBrowser控件。

根据MSDN,没有Cookies属性的WebBrowser控件,这是因为,我认为,WebBrowser使用相同的浏览器状态作为桌面IE…这并不重要。

根据MSDN (http://social.msdn.microsoft.com/Forums/windows/en-US/e43239f3-3914-43ec-ac50-223b022ec2ea/webbrowser-control-and-cookies?forum=winformsdesigner)上的这个线程,您可以通过从wininet.dll导入InternetSetCookie函数来添加cookie。

所以我会这样做(在c#中,抱歉,但将其转换为VB应该很容易)

// Ideally I'd parse the text-file using a finite-state-machine parser modelled on a CSV parser, but for this exercise I'll resort to `String.Split`.
private static List<String[]> GetCookieLines(String fileName) {
    List<String[]> cookieLines = new List<String[]>();
    using(FileStream fs = new FileStream( pathToYourCookies.txt, FileMode.Open ))
    using(StreamReader rdr = new StreamReader( fs, Encoding.UTF8 )) { 
        String line;
        while( (line = rdr.ReadLine()) != null ) {
            String[] components = line.Split(''t'); // assuming tab-separated file
            cookieLines.Add( components )
        }
    }
}
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern Boolean InternetSetCookie(string urlName, string cookieName, string cookieData);
public static void ImportCookies(String fileName) {
    List<String[]> cookies = GetCookieLines( fileName );
    foreach(String[] cookie in cookies) {
        String domainName = cookie[0];
        String name       = cookie[4];
        String value      = cookie[5];
        InternetSetCookie( domainName, name, value );
    }
}