wininet.dll函数库:不会过期的cookie

wininet.dll中包含很多win32下和网络有关的函数,包括internet,ftp等,下面演示一个IE下不过期的cookie。 比如csdn的登陆信息可以保存2个星期,你在登陆后把系统时间改为2周后,登陆信息就失效了,使用InternetSetCookie可以自己设置过期日期。 首先在IE中登陆,登陆时选择信息保存2周,然后运行如下代码,运行之后你可以把日期调整到2010年看效果:

view plaincopy to clipboardprint?
using System;  
 
using System.Text;  
 
using System.Runtime.InteropServices;  
 
namespace ConsoleApplication1  
 
{  
 
    class Program  
 
    {  
 
        /// <summary>  
 
        /// 设置cookie  
 
        /// </summary>  
 
        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]  
 
        public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);  
 
        /// <summary>  
 
        /// 获取cookie  
 
        /// </summary>  
 
        [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%22,name,value/);  
 
                InternetSetCookie("http://forum.csdn.net/", name, value);  
 
                InternetSetCookie("http://webim.csdn.net/", name, value);  
 
            }  
 
        }  
 
    }  
 

 

你可能感兴趣的:(cookie)