日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#模拟网站登录介绍

發布時間:2025/3/19 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#模拟网站登录介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在寫灌水機器人、抓資源機器人和Web網游輔助工具的時候第一步要實現的就是用戶登錄。那么怎么用C#來模擬一個用戶的登錄,要實現用戶的登錄,那么首先就必須要了解一般網站中是怎么判斷用戶是否登錄的。

HTTP協議是一個無連接的協議,也就是說這次對話的內容和狀態與上次的無關,為了實現和用戶的持久交互,網站與瀏覽器之前在剛建立會話時將在服務 器內存中建立一個Session,該Session標識了該用戶(瀏覽器),每一個Session都有一個唯一的ID,第一次建立會話時服務器將生成的這 個ID傳給瀏覽器,瀏覽器在接下來的瀏覽中每一個發向服務器的請求中都將包含該SessionID,從而標識了自己的身份。

服務器上是使用內存來保存Session中的信息,那么瀏覽器又使用什么來保存服務器分配的這個SessionID了對,是Cookie。在剛建立 會話時瀏覽器向服務器的請求中將不包含SessionID在Cookie中,服務器就認為是一個全新的會話,從而在服務器上分配一段內存給該 Session用,同時將該Session的ID在Http Header中使用Set-Cookie發送給瀏覽器。

現在原理已經搞清楚了,那么我們就來實現一個網站的登錄嘛。下面以某某大學的管理信息系統來進行檢驗(注意:這里的缺陷就在于沒有驗證碼的識別和多個服務器的跳轉)難度相對來說要小很多。

首先先用httpAnaly或者是httpwatch等專用的抓包工具,來獲取網頁提交時候的數據信息和頭信息。以下代碼包含了登陸和在登陸后獲取另一個頁面數據信息。

private void Form1_Load(object sender, EventArgs e) { string username = "xxxx";//用戶名string password = "xxxx";//密碼//新建一個用于保存cookies的容器 CookieContainer container = new CookieContainer(); //拼接post數據string postData = ("username=" + username); postData += ("&passwd=" + password); postData += ("&login=%B5%C7%A1%A1%C2%BC"); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(postData); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(http://xxxx/xxxx/login.asp); request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; request.KeepAlive = true; request.CookieContainer = container; //返回的cookie會附加在這個容器里面//發送數據Stream newStream = request.GetRequestStream(); newStream.Write(data, 0, data.Length); newStream.Close(); //以下倆句不可缺少HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Cookies = container.GetCookies(request.RequestUri); HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create(http://xxxx/xxxx/Score.asp); postData = "term=&TermList=%C7%EB%D1%A1%D4%F1&ckind=&lwPageSize=100&lwBtnquery=%B2%E9%D1%AF"; data = encoding.GetBytes(postData); requestScore.Method = "Post"; requestScore.ContentType = "application/x-www-form-urlencoded"; requestScore.ContentLength = data.Length; requestScore.KeepAlive = true; //使用登陸的cookies通過接下來的驗證requestScore.CookieContainer = container; Stream stream = requestScore.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); HttpWebResponse responseSorce = (HttpWebResponse)requestScore.GetResponse(); StreamReader reader = new StreamReader(responseSorce.GetResponseStream(), Encoding.Default); string content = reader.ReadToEnd(); textBox1.Text = content; }

?

總結

以上是生活随笔為你收集整理的C#模拟网站登录介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。