从安全(登录)网站获取HTML

时间:2013-11-14 08:50:00

标签: c# html asp.net cookies web

我目前正在开发一个可以使用某个网页显示的HTML信息的项目。

问题是,我不能只使用WebRequest,因为我试图获取HTML的网站有一个登录系统,该页面要求您登录。<​​/ p>

但是,如果这是任何问题 - 使用我的页面的用户应该可以访问此页面,他会记得用cookie登录。

所以我的观点是,我需要一种方法让我的服务器拥有cookie并从网页上读取,或者更确切地说,让客户端给我HTML代码,如果他进入页面,它将显示给他。

我正在使用带有C#的ASP.NET。

1 个答案:

答案 0 :(得分:0)

我会在评论中回复“如何使用cookies发送webrequest”,但由于评论的格式化功能有限,我会将其发布为答案:

  using System.IO;
  using System.Net;
  using System.Text;

  // ...

  var request = WebRequest.Create("http://localhost:54903/SimpleLogin.ashx") as HttpWebRequest;
  var container = new CookieContainer();
  request.CookieContainer = container;
  string postData = "username=user&password=pass";
  byte[] data = Encoding.ASCII.GetBytes(postData);
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;
  using (var stream = request.GetRequestStream()) {
    stream.Write(data, 0, data.Length);
  }
  var response = (HttpWebResponse)request.GetResponse();

  request = WebRequest.Create("http://localhost:54903/Home.ashx") as HttpWebRequest;
  request.CookieContainer = container;
  request.Method = "GET";
  response = (HttpWebResponse)request.GetResponse();
  string authorizedGetString;
  using (var stream = response.GetResponseStream()) {
    using (var streamReader = new StreamReader(stream)) {
      authorizedGetString = streamReader.ReadToEnd();
    }
  }
相关问题