.Net/C# 应用程序直接读取本地 Cookies 文件 (由于 WinXP SP2 调用 API: InternetGetCookie 无果)

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

.Net/C# 应用程序直接读取本地 Cookies 文件(WinXP SP2 调用 API: InternetGetCookie 无果)

using System;

using System.IO;

using System.Text;

using System.Text.RegularExpressions;

using Microsoft.Win32;

public class Class1

{

static void Main(string[] args)

{

System.Console.WriteLine(GetCookiesFromFiles("et8")); //支持 WinXP SP2

System.Console.WriteLine(GetCookie("http://bbs.et8.net"));

}

[System.Runtime.InteropServices.DllImport("wininet.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]

public static extern bool InternetGetCookie(string lpszUrlName,string lpszCookieName,StringBuilder lpszCookieData,ref int lpdwSize);

[System.Runtime.InteropServices.DllImport("kernel32.dll")]

internal static extern Int32 GetLastError();

public static string GetCookie(string url) //Win32 API

{

int size = 1000;

StringBuilder sb = new StringBuilder(size);

if (!InternetGetCookie(url,"", sb,ref size))

{

Console.WriteLine("Error code:{0}", GetLastError());

}

return sb.ToString();

}

public static string GetCookiesFromFiles(string MasterDomain) //Cookies File

{

string S = null;

RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", false);

if (key != null)

{

string val = (string) key.GetValue("Cookies");

if (val!= null)

{

string[] F = Directory.GetFiles(val);

string s = null;

int i;

Regex r = new Regex(@".*@" + MasterDomain + @"*\[\d+\].txt");

for (i = 0; i < F.Length; i++)

{

if (r.IsMatch(F[i]))

{

s = F[i];

}

}

if (s != null) //s 就是最新文件

{

StreamReader sr = new StreamReader(s);

s = null;

i = 1;

while ((s = sr.ReadLine())!= null)

{

if (s == "*" || s == "\n")

{

i = 0;

}

//每节只读两行

if (i == 1)

{

S += s;

}

else if (i == 2)

{

S += "=" + s + "; ";

}

i++;

}

}

}

}

return S;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航