程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用C#實現網站用戶登錄(2)

使用C#實現網站用戶登錄(2)

編輯:關於C語言

4)獲取一個只有登錄後才能訪 問的頁面,測試是否登錄成功。

5.好,整個登錄機制我們已經分析完了,接下來就是 考慮代碼的實現了。在面向HTTP協議上,C#中有WebRequest、WebResponse、HttpWebRequest 和HttpWebResponse等類。我們主要就基於這些類進行操作,當然完全基於Socket編程也可以 ,但是這裡就沒有這個必要了。

在不設置CookIE、PostData的情況下要獲得一個頁面 的Html的方法很簡單:

public static string GetHtml(string URL)
     {
      WebRequest wrt;
      wrt = WebRequest.Create(URL);
      wrt.Credentials = CredentialCache.DefaultCredentials;
      WebResponse wrp;
       wrp = wrt.GetResponse();
      return new StreamReader (wrp.GetResponseStream(), Encoding.Default).ReadToEnd();
    }

當需要獲得服務器返回的Cookie的話,可以通過wrp.Headers.Get ("Set-CookIE")方法來獲取。

如果需要將CookIE加入到請求另外還Post數 據的話其實也很簡單,只需要將httpWebRequest對象中設置ContentLength 和Request的 Stream就可以了。

httpWebRequest.ContentLength = byteRequest.Length;
Stream stream;
stream = httpWebRequest.GetRequestStream();
stream.Write(byteRequest, 0, byteRequest.Length);
stream.Close();

代碼我就不都貼出了,我做了 一個Demo在附件中,大家有興趣研究的可以看一下。

代碼中實現了盛大賬號的登錄, 其實縱橫天下的登錄還沒有完成,接下來還有選擇具體服務器,將ticket轉到具體服務器上 再進行驗證,原理也是一樣的,我這裡就不再累述了。

成功登錄後,接下來我們只需 要每次發送請求是跟上該CookIE,服務器就認為是登錄的用戶在操作了,接下來就可以隨便 灌水、Download資源了,具體要做什麼就大家自己弄了,只需要在IE中操作一篇,抓包分析 出來,用C#實現同樣的發包就OK!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved