zoukankan      html  css  js  c++  java
  • 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);  
     
                }  
     
            }  
     
        }  
     

     

  • 相关阅读:
    20155311《信息安全系统设计基础》课程总结
    20155311《信息安全系统设计基础》第14周学习总结
    20155311《信息安全系统设计基础》第十三周学习总结
    2017-2018-1 《信息安全系统设计基础》实验五 通信协议设计
    补交课下测试(ch12并发编程) 08.第八周
    2017-2018-1 20155311 实验四 外设驱动程序设计
    2017-2018-1 学号20155311 《信息安全系统设计基础》第11周学习总结
    PWD的编译及调试
    2017-2018-1 学号20155311 《信息安全系统设计基础》第9周学习总结
    2017-2018-1 20155311 实验三 实时系统
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1550044.html
Copyright © 2011-2022 走看看