30/09/2018, 17:04

Tự động login vào website ASP .NET

Tình hình là e đang thử viết đoạn code đăng nhập website viết bằng asp.net nhưng e thử rất nhiều lần nhưng mã html của StreamReader trả về vẫn giống y hệt như lúc chưa đăng nhập, ac giúp e với ạ
(Ac có code demo auto login cho e xin code với ạ)
Code e đây ạ,

string url = "http://congthongtin.hvnh.edu.vn/default.aspx?page=dangnhap";
            //HttpContext.Current.Request.Url.AbsoluteUri.ToString().Replace("AutoLogin", "Login");
        CookieContainer myCookieContainer = new CookieContainer();
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.CookieContainer = myCookieContainer;
        request.Method = "GET";
        request.KeepAlive = false;

        HttpWebResponse response = request.GetResponse() as HttpWebResponse;

        System.IO.Stream responseStream = response.GetResponseStream();
        System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
        string srcString = reader.ReadToEnd();

        // get the page ViewState              
        string viewStateFlag = "id="__VIEWSTATE" value="";
        int i = srcString.IndexOf(viewStateFlag) + viewStateFlag.Length;
        int j = srcString.IndexOf(""", i);
        string viewState = srcString.Substring(i, j - i);

        // get page EventValidation              
        string eventValidationFlag = "id="__EVENTVALIDATION" value="";
        i = srcString.IndexOf(eventValidationFlag) + eventValidationFlag.Length;
        j = srcString.IndexOf(""", i);
        string eventValidation = srcString.Substring(i, j - i);

        string submitButton = "Đăng Nhập";

        // UserName and Password
        string userName = "16A4020400";
        string password = "12345678";

        // Convert the text into the url encoding string
        viewState = System.Web.HttpUtility.UrlEncode(viewState);
        eventValidation = System.Web.HttpUtility.UrlEncode(eventValidation);
        submitButton = System.Web.HttpUtility.UrlEncode(submitButton);

        // Concat the string data which will be submit
        string formatString =
                 "ctl00$ContentPlaceHolder1$ctl00$ucDangNhap$txtTaiKhoa={0}&ctl00$ContentPlaceHolder1$ctl00$ucDangNhap$txtMatKhau={1}&ctl00$ContentPlaceHolder1$ctl00$ucDangNhap$btnDangNhap={2}&__VIEWSTATE={3}&__EVENTVALIDATION={4}";
        string postString =
                 string.Format(formatString, userName, password, submitButton, viewState, eventValidation);

        // Convert the submit string data into the byte array
        byte[] postData = Encoding.ASCII.GetBytes(postString);

        // Set the request parameters
        request = WebRequest.Create(url) as HttpWebRequest;
        request.Method = "POST";
        request.Credentials = new NetworkCredential(userName,password);
        request.Referer = url;
        request.KeepAlive = false;
        request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36";
        request.ContentType = "application/x-www-form-urlencoded";
        request.CookieContainer = myCookieContainer;
        System.Net.Cookie ck = new System.Net.Cookie("TestCookie1", "Value of test cookie");
        ck.Domain = request.RequestUri.Host;
        request.CookieContainer.Add(ck);
        request.CookieContainer.Add(response.Cookies);

        request.ContentLength = postData.Length;

        // Submit the request data
        System.IO.Stream outputStream = request.GetRequestStream();
        request.AllowAutoRedirect = true;
        outputStream.Write(postData, 0, postData.Length);
        outputStream.Close();


        // Get the return data
        response = request.GetResponse() as HttpWebResponse;
        responseStream = response.GetResponseStream();
        reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
        srcString = reader.ReadToEnd();
        richTextBox1.Text = srcString;
Khiem Nguyen viết 19:07 ngày 30/09/2018

bạn tham khảo link này xem sao
http://stackoverflow.com/questions/14922822/using-cookies-to-auto-login-a-user-in-asp-net-custom-login

Bài liên quan
0