wininet.dll中包含很多win32下和网络有关的函数,包括internet,ftp等,下面演示一个IE下不过期的cookie。 比如csdn的登陆信息可以保存2个星期,你在登陆后把系统时间改为2周后,登陆信息就失效了,使用InternetSetCookie可以自己设置过期日期。 首先在IE中登陆,登陆时选择信息保存2周,然后运行如下代码,运行之后你可以把日期调整到2010年看效果:
- using System;
-
- using System.Text;
-
- using System.Runtime.InteropServices;
-
- namespace ConsoleApplication1
-
- {
-
- class Program
-
- {
-
-
-
-
-
-
-
- [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
-
- public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
-
-
-
-
-
-
-
- [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);
-
- }
-
- }
-
- }
-
- }