C# 设置IE Cookie 从而实现自动打开需要登录的页面

C# 设置IE Cookie 从而实现自动打开需要登录的页面,比如点击QQ面板上的qq空间,他就直接进入你的QQ空间,无需再次登录。这个其实是使用的一个api函数就搞定了,但是设置上很有技巧。

///
    /// 设置cookie
    ///

    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
    ///
    /// 获取cookie
    ///

    [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);
      }
    }

先通过上面的代码设置好 cookie 信息 ,会保存到临时文件夹的,然后

来一句
System.Diagnostics.Process.Start(“IEXPLORE.EXE”, “webim.csdn.net”);// 调用ie打开网页

ok 会直接返回到登录成功的页面。


本文来自: 张筱祥博客(www.zxxblog.com) 详细出处参考:http://www.zxxblog.com/439

posted @ 2011-06-10 23:14  scgw  阅读(3068)  评论(0编辑  收藏  举报