加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在ASP.net C#中伪造浏览器请求

发布时间:2020-12-16 00:07:22 所属栏目:asp.Net 来源:网络整理
导读:我正在使用下面的代码来拉取我们的第三方开发页面之一,因此我可以将其解析为XML以用于我的随机工作. 我们有兴趣在服务器上设置浏览器检测级别,只允许某些浏览器访问该站点;所以问题是我如何伪造它以便服务器认为它是浏览器请求? static string GetHtmlPage(
我正在使用下面的代码来拉取我们的第三方开发页面之一,因此我可以将其解析为XML以用于我的随机工作.

我们有兴趣在服务器上设置浏览器检测级别,只允许某些浏览器访问该站点;所以问题是我如何伪造它以便服务器认为它是浏览器请求?

static string GetHtmlPage(string strURL)
    {

        String strResult;
        System.Net.WebResponse objResponse;

        System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(strURL);

        objResponse = objRequest.GetResponse();
        using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
        {
            strResult = sr.ReadToEnd();
            sr.Close();
        }
        return strResult;
    }

解决方法

浏览器检测基于对服务器的请求中的标头来完成.您需要做的就是设置标题.但是,使用HttpWebRequest时,不要通过headers集合设置它,而是使用.UserAgent属性.
...
System.Net.WebRequest objRequest = 
   System.Net.HttpWebRequest.Create(strURL);

//Pretend to be IE7
((System.Net.HttpWebRequest)objRequest).UserAgent = 
   "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";

objResponse = objRequest.GetResponse();
...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读