模拟网站授权访问及网页内用户登录

本文演示如何针对2种情况进行用户授权访问WEB,第1种是网站访问授权,第2种是网页内用户登录授权。

 

    public class WebRequestWithUserLogin
    {
        public static string Test(string url, Encoding encoding, string loginUser, string loginPSW)
        {
            HttpWebResponse response = DoWebRequst(url, encoding, loginUser, loginPSW);
            Stream stream = response.GetResponseStream();   //获取响应的字符串流
            StreamReader sr = new StreamReader(stream); //创建一个stream读取流
            string html = sr.ReadToEnd();   //从头读到尾,放到字符串html
            return html;
        }

        private static readonly string DefaultUserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36";
        /// <summary>
        /// ssl证书验证回调
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="certificate">证书</param>
        /// <param name="chain">证书链</param>
        /// <param name="errors">ssl错误信息</param>
        /// <returns></returns>
        private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
        {
            return true; //总是接受   
        }
        /// <summary>
        /// 对指定网址发送访问请求
        /// </summary>
        /// <param name="url">网址</param>
        /// <param name="encoding">编码类型</param>
        /// <param name="loginUser">访问用户(部分网址要求先验证身份才能访问)</param>
        /// <param name="loginPSW">访问密码(如果有)</param>
        /// <returns></returns>
        public static HttpWebResponse DoWebRequst(string url, Encoding encoding, string loginUser = "", string loginPSW = "")
        {
            HttpWebRequest request = null;
            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
            request = WebRequest.Create(url) as HttpWebRequest;
            request.ProtocolVersion = HttpVersion.Version11;
            request.ContentType = "application/x-www-form-urlencoded";
            request.UserAgent = DefaultUserAgent;
            if (loginUser.Length > 0 && loginPSW.Length > 0)
                request.Credentials = new NetworkCredential(loginUser, loginPSW);
            else
                request.Credentials = CredentialCache.DefaultCredentials;
            request.KeepAlive = true;
            request.Headers["Accept-Language"] = "zh-CN,zh;q=0.9";
            HttpWebResponse httpWebResponse = (HttpWebResponse)request.GetResponse();
            return httpWebResponse;
        }
        /// <summary>
        /// 模拟用户登录(操作网页元素)
        /// 参考博文:https://blog.csdn.net/qq_34202873/article/details/103823953
        /// </summary>
        public static System.Windows.Forms.WebBrowser Login()
        {

            System.Windows.Forms.WebBrowser webBrowser = new System.Windows.Forms.WebBrowser();
            webBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;
            webBrowser.Navigate("http://10.120.131.194/login.html?/joblog_save.html");
            return webBrowser;
        }

        private static void WebBrowser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
        {
            if (e.Url.ToString() == "http://10.120.131.194/login.html?/joblog_save.html")//建议加此判断,不然容易出错。因为所有页面加载都会调用此方法,在你登录成功后也会执行本方法内的代码。
            {
                System.Windows.Forms.WebBrowser webBrowser = sender as System.Windows.Forms.WebBrowser;
                System.Windows.Forms.HtmlElement element = webBrowser.Document.GetElementById("element10003");//查找用户名及密码输入框
                if (element != null)
                    element.SetAttribute("value", "admin");//设置用户名或密码的数值
                System.Windows.Forms.HtmlElementCollection htmlElementCollection = webBrowser.Document.GetElementsByTagName("input");
                foreach (System.Windows.Forms.HtmlElement htmlElement in htmlElementCollection)
                {
                    if (htmlElement.Name == "loginbtn")//查找登录按键并点击提交
                        htmlElement.InvokeMember("Click");
                }
            }
        }
    }

 

 

 

网站模拟访问机】 本程序是一款通过模拟IE访问来增加网站的pv流量,并通过模拟百度和谷歌的关键字搜索来增加网站的搜索排名及网站收录。 特点: 1、采用代理IP的真实访问模拟,适应各种统计软件; 2、模拟访问速度根据时段智能控制,使数据看上去更真实; 3、网页深度访问模拟,区别于其他软件只能刷指定的几个页面, 本软件根据设定的地址,进行搜索,可以访问页面内最大20层深度的页面。 4、模拟真实的百度和谷歌搜索,并自动翻页查找搜索结果,区别于其它软件的直接url访问; 5、代理地址筛选,直接粘贴代理网站的地址,自动进行格式化和晒选,生成列表文件备用; 备注: 1、被模拟网页必须规范化html代码,并保证打开速度; 2、每个网页的title必须正确; 3、所有页面中不得有死链接; 4、所输入配置文件的关键字必须在百度和谷歌搜索引擎中能搜索到本站链接,建议在前三页之内。 5、本程序采用netwinform框架开发,运行程序需要先安装 Microsoft .NET Framework 3.5 安装包 安装包下载地址可参考 http://www.netwinform.com/plusinfo.aspx?id=5 使用: 第一步、下载后,解压缩; 第二步、修改配置文件并保存; 第三步、运行主程序 webpv_autoadd.exe 第四步、载入代理IP地址列表 第五步、点启动按钮启动相应的模拟器(可同时启动三个模拟器,也可以启动多个客户端) 注册: 本软件与域名进行绑定,不限客户端数量。 试用版会每个小时自动终止网站模拟,并弹出注册提示框,点击【继续试用】按钮后,再重新点启动按钮,可以继续试用。如果想支持本软件,长期使用用本软件,建议联系软件作者索取软件注册码。 【NetWinForm程序园】 网址: http://www.netwinform.com
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzl_li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值