zoukankan      html  css  js  c++  java
  • wininet.dll函数库:不会过期的cookie

    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);
    
                }
    
            }
    
        }
    
    }
  • 相关阅读:
    简单实现缓存需求
    Visual Studio 项目模板、文件模板、代码段和环境设置
    Memcached 基础应用
    Visual Studio 2010 模型设计工具 基本应用
    委托和事件 委托
    C# 编码规范
    锂电池正确使用方法
    HTC W800(XV6750) USB 连接 Windows 7 设备错误 解决办法
    UML 面向对象分析与设计
    注册表项写入与删除简便方法
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204910.html
Copyright © 2011-2022 走看看