2009-05-23 33 views
7

Có thể viết trình bừa màn hình cho trang web được bảo vệ bằng thông tin đăng nhập biểu mẫu không. Tôi có quyền truy cập vào trang web, tất nhiên, nhưng tôi không có ý tưởng làm thế nào để đăng nhập vào trang web và lưu thông tin đăng nhập của tôi trong C#.Quét màn hình một trang web có đăng nhập dạng asp.net trong C#?

Ngoài ra, bất kỳ ví dụ điển hình nào về trình bảo vệ màn hình trong C# sẽ được đánh giá cao.

Điều này đã được thực hiện chưa?

Trả lời

6

Nó khá đơn giản. bạn cần phương pháp của bạn tùy chỉnh đăng nhập (HttpPost).

bạn có thể đưa ra một cái gì đó như thế này (theo cách này bạn sẽ nhận được tất cả các cookie cần thiết sau khi đăng nhập và bạn chỉ cần chuyển chúng đến HttpWebRequest tiếp theo):

public static HttpWebResponse HttpPost(String url, String referer, String userAgent, ref CookieCollection cookies, String postData, out WebHeaderCollection headers, WebProxy proxy) 
    { 
     try 
     { 
      HttpWebRequest http = WebRequest.Create(url) as HttpWebRequest; 
      http.Proxy = proxy; 
      http.AllowAutoRedirect = true; 
      http.Method = "POST"; 
      http.ContentType = "application/x-www-form-urlencoded"; 
      http.UserAgent = userAgent; 
      http.CookieContainer = new CookieContainer(); 
      http.CookieContainer.Add(cookies); 
      http.Referer = referer; 
      byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData); 
      http.ContentLength = dataBytes.Length; 
      using (Stream postStream = http.GetRequestStream()) 
      { 
       postStream.Write(dataBytes, 0, dataBytes.Length); 
      } 
      HttpWebResponse httpResponse = http.GetResponse() as HttpWebResponse; 
      headers = http.Headers; 
      cookies.Add(httpResponse.Cookies); 

      return httpResponse; 
     } 
     catch { } 
     headers = null; 

     return null; 
    } 
+0

Mẹo: Ngay cả khi bạn không muốn phản hồi từ POST, điều quan trọng là phải ăn nó để chuyển dữ liệu bị xóa và kết nối đóng sạch, ví dụ: {http.GetResponse(); } – kgriffs

4

Chắc chắn, điều này đã được thực hiện. Tôi đã thực hiện nó một vài lần. Đây là (thường) được gọi là Screen-scraping hoặc Web Scraping.

Bạn nên xem this question (và cũng duyệt qua các câu hỏi trong thẻ "screen-scraping". Lưu ý rằng Scraping không chỉ liên quan đến việc trích xuất dữ liệu từ tài nguyên web. Nó cũng liên quan đến việc gửi dữ liệu đến các biểu mẫu trực tuyến để bắt chước các hành động của người dùng khi nộp đầu vào như một hình thức đăng nhập.

Các vấn đề liên quan