码迷,mamicode.com
首页 > Windows程序 > 详细

c# winform启动浏览器,实现自动登录

时间:2015-09-16 14:15:11      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

首先,申明两个API

        /// <summary>
        /// 设置 cookie
        /// </summary>
        /// <param name="lpszUrlName"></param>
        /// <param name="lbszCookieName"></param>
        /// <param name="lpszCookieData"></param>
        /// <returns></returns>
        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
        /// <summary>
        /// 获取cookie
        /// </summary>
        /// <param name="url"></param>
        /// <param name="name"></param>
        /// <param name="data"></param>
        /// <param name="dataSize"></param>
        /// <returns></returns>
        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool InternetGetCookie(string url, string name, StringBuilder data, ref int dataSize);

不用过多的解释,一个读,一个写

如果实现过 httprequest , 那么手头一定已经有了cookie了。

此时可以直接使用了

        private void OpenWeb()
        {
            //打开浏览器查看
            //生成新的
            foreach (System.Net.Cookie i in cookie.GetCookies(new Uri("主机的cookie地址,比如http://192.168.9.200")))
            {
                var b = InternetSetCookie("http://" + i.Domain, null, i.Name + "=" + i.Value + ";path=" + i.Path + ";expires=" + DateTime.Now.AddMinutes(10).GetDateTimeFormats(r)[0].ToString() + ";");//这里一定要用r格式,否则不识别
            }
            //启动浏览器
            System.Diagnostics.Process.Start("iexplore.exe", "要打开的url");
        }

 此种方法实用于模拟登录后实现自动登录,特别是网站服务器不属于项目开发范围内的,如果是在开发范围内的,建议使用类似QQ空间的登录方式,直接向服务器提交地址,在地址后附带校验身份的参数,服务器直接允许登录。

此种方法,对于cookie有效,对于session未测试。

c# winform启动浏览器,实现自动登录

标签:

原文地址:http://www.cnblogs.com/21tcy/p/4813068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!