2015-08-06 3 views
0

Я хочу войти на веб-страницу http://abc/mypage/config/login.aspx и извлечь html страницы http://abc/mypage/config/config.aspx. Я использовал webrequest и пытался, но я всегда получаю страницу html для входа в систему.войдите на веб-страницу с программным использованием C#

WebRequest request = WebRequest.Create("http://abc/mypage/config/login.aspx"); 
request.Method = "POST"; 

string postData = "usernameTextBox=myUsername&passwordTextBox=myPassword"; 
byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = byteArray.Length; 
Stream dataStream = request.GetRequestStream(); 
dataStream.Write(byteArray, 0, byteArray.Length); 
dataStream.Close(); 
WebResponse response = request.GetResponse(); 
dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
string responseFromServer = reader.ReadToEnd(); 
reader.Close(); 
dataStream.Close(); 
response.Close(); 

Мой заголовок для этого запроса:

Принимать
текст/html, приложение/XHTML + XML, приложение/XML; д = 0,9, /; д = 0,8 Accept -Кодирование GZIP, выкачать Accept-Language EN-US, ан; д = 0,5 Подключение Keep-Alive Cookie
ASP.NET_SessionId = nyifft45s13wni45bw0qer3z Хост
192.168.174.16 Referer http://abc/mypage/config/login.aspx User-Agen t Mozilla/5.0 (Windows NT 6.1; WOW64; с.в.: 39,0) Gecko/20100101 Firefox/39,0

мне нужно войти в систему через эту страницу анг получить HTML из config.aspx страницы.

Любая помощь будет оценена по достоинству.

Thank you.

+0

Вам нужно будет сделать запрос на страницу входа и успешно пройти аутентификацию. Затем сохраните все куки, которые он отправит вам, и включите их в свой запрос в 'config.aspx' – Rob

ответ

1

Я предполагаю, что сайт использует проверку подлинности на основе вашего кода и страницы aspx. Попробуйте добавить cookiecontainer

Cookiecontainer cookies = new Cookiecontainer(); 

    //login request to get authentication cookies. 
    WebRequest request = WebRequest.Create("http://abc/mypage/config/login.aspx"); 
    request.Method = "POST"; 
    request.cookiecontainer = cookies 

    //your rest of the code 

    //content request to get what you need 
    WebRequest request = WebRequest.Create("http://abc/mypage/config/config.aspx"); 
    request.Method = "POST"; 
    request.cookiecontainer = cookies 

    //same as before 

вы должны получить то, что вам нужно вернуться, если аутентификация через куки.