C# 设置IE Cookie 从而实现自动打开需要登录的页面,比如点击QQ面板上的qq空间,他就直接进入你的QQ空间,无需再次登录。这个其实是使用的一个api函数就搞定了,但是设置上很有技巧。
///
/// 设置cookie
///
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
///
/// 获取cookie
///
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetGetCookie(
string url, string name, StringBuilder data, ref int dataSize);
static void Main(string[] args)
{
//获取旧的
StringBuilder cookie = new StringBuilder(new String(‘ ‘,2048));
int datasize = cookie.Length;
bool b= InternetGetCookie(“http://community.csdn.net”, null, cookie, ref datasize);
//删除旧的
foreach (string fileName in System.IO.Directory.GetFiles(System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies)))
{
if (fileName.ToLower().IndexOf(“csdn”) > 0)
{
System.IO.File.Delete(“csdn”);
}
}
//生成新的
foreach (string c in cookie.ToString().Split(‘;’))
{
string[] item = c.Split(‘=’);
string name = item[0];
string value = item[1] + “;expires=Sun,22-Feb-2099 00:00:00 GMT”;
InternetSetCookie(“http://community.csdn.net”,name,value);
InternetSetCookie(“http://forum.csdn.net”, name, value);
InternetSetCookie(“http://webim.csdn.net”, name, value);
}
}
先通过上面的代码设置好 cookie 信息 ,会保存到临时文件夹的,然后
来一句
System.Diagnostics.Process.Start(“IEXPLORE.EXE”, “webim.csdn.net”);// 调用ie打开网页
ok 会直接返回到登录成功的页面。