Как отправить форму автоматически с помощью HttpWebResponse - PullRequest
0 голосов
/ 25 мая 2009

Я ищу приложение, которое может сделать следующее

a) Программно автоматический вход на страницу (login.asxp) с использованием HttpWebResponse с использованием уже указанных имени пользователя и пароля.

б) Определить URL перенаправления, если вход в систему успешен.

c) Отправьте другую форму (settings.aspx) для обновления определенных полей в базе данных.

Требуемое кодирование должно использовать asp.net

Приложение должно завершить весь этот процесс в одном и том же сеансовом cookie.

1 Ответ

0 голосов
/ 25 мая 2009
string sUrl = "login.aspx";
HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(sUrl);
CookieContainer oMyCookies = new CookieContainer();
oRequest.CookieContainer = oMyCookies;
// encode postdata into byte array.  the postdata string format will most likely be different and you'll have to examine the postdata going back and forth using some firefox addon like LiveHTTPHeaders
byte[] oPostData = System.Encoding.UTF8.GetBytes("username=" + HttpUtility.UrlEncode(sUser) + "&pass=" HttpUtility.UrlEncode(sPass));
using (Stream oStream = oRequest.GetRequestStream())
{
    oStream.Write(oPostData, 0, oPostData.Length);
}
HttpWebResponse oResponse = oRequest.GetResponse();
// save response cookies in our cookie object for future sessions!
foreach (Cookie oCookie in oResponse.Cookies)
{
    oMyCookies.SetCookies(sUrl, oCookie.ToString());
}
// maybe check response headers for location
string sResponseContents = null;
using (StreamReader oReader = new StreamReader(oResponse.GetResponseStream())
{
    // store server response into string
    sResponseContents = oReader.ReadToEnd();
}

... это основной код, необходимый для того, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...