基於c#實現網站的自動登陸

實現校園網的網關自動認證。

從網上找到了兩種思路:一種是模擬網站的點擊動作,實現自動登錄。第二種是自動向登錄目標發送登陸字符串。

下面是源碼:

第一種:

           //webBrowser1.Url =new Uri("http://);

            ////定義html元素 通過Name獲取控件值
            //HtmlElement tbUserid = webBrowser1.Document.All["DDDDD"];
            //HtmlElement tbPasswd = webBrowser1.Document.All["upass"];
            //HtmlElement btnSubmit = webBrowser1.Document.All["0MKKey"];
           
            //////定義html元素 通過ID獲取控件值 (用戶名 密碼 登錄按鈕)
            ////HtmlElement tbUserid = webBrowser1.Document.GetElementById("DDDDD");
            ////HtmlElement tbPasswd = webBrowser1.Document.GetElementById("upass");
            ////HtmlElement btnSubmit = webBrowser1.Document.GetElementById("0MKKey");

            ////三個元素其一爲空返回 加載後才執行賦值 否則會出現爲null值的崩潰錯誤
            //if (tbUserid == null || tbPasswd == null || btnSubmit == null)
            //{
            //    return;
            //}
           
            ////設置元素value屬性值 (用戶名 密碼值)
            //tbUserid.SetAttribute("value","111111");
            //tbPasswd.SetAttribute("value", "111111");
           
            ////執行元素的方法:如click submit
            //btnSubmit.InvokeMember("click");    

 

第二種:

          string username = "11";//用戶名
            string password = "1111";//密碼
            //新建一個用於保存cookies的容器    
            CookieContainer container = new CookieContainer();
            //拼接post數據DDDDD=11&upass=1111&0MKKey=%C1%AC%BD%D3%CD%F8%C2%E7
            string postData = ("DDDDD=" + username);
            postData += ("&upass=" + password);
            postData += ("&0MKKey=%C1%AC%BD%D3%CD%F8%C2%E7");
           ASCIIEncoding encoding = new ASCIIEncoding();
           byte[] data = encoding.GetBytes(postData);
           HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://");
           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);

            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
            string content = reader.ReadToEnd();
            textBox3.Text = content;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章