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

原文:http://blog.csdn.net/jinjazz/archive/2008/07/11/2638952.aspx

 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  
   
     
{  
   
         
/// <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",name,value);  
   
                 InternetSetCookie(
"http://forum.csdn.net", name, value);  
   
                 InternetSetCookie(
"http://webim.csdn.net", name, value);  
   
             }
  
   
         }
  
   
     }
  
   
 }

 

 

posted on 2009-06-17 17:03  冷月孤峰  阅读(236)  评论(0)    收藏  举报