Как выполнить авторизацию на стороннем сайте - C#
Формулировка задачи:
Привет всем!
Заинтересовала меня тут намедни одна штуковина, решил попробовать сварганить, но понял что в этом направлении С# я пока что ни бельмеса.
Однако научиться хочется.
Кратко о проблемке:
Хочу написать легкий клиентик на основе "webBrowser" для доступа в приложение без лишних вкладок открывания штатных браузеров и т.д
Идея по большому счету, для самообучения.
Итак есть сайт на котором есть формочка: Логин и пароль.
При входе на него и запомненном логе и пароле данные формы заполненны, я нажимаю кнопку вход и понеслась. Так бывает обычно через броузер.
Я хочу сделать програмку, которая, бы запускалась сразу в приложения, минуя процесс нажатия кнопки ВХОД в форме (пуская даже заполненной), ну то есть прописать приложению все при загрузке
Ну плюс немного расширю само окно клиентика для удобства, по сравнению с нагроможденным браузерным окном.
Проблема в том, что мне нужно получить доступ к текстбоксам формы авторизации?! Подскажите пожалуйста в каком направлении копать?!
Решение задачи: «Как выполнить авторизацию на стороннем сайте»
textual
Листинг программы
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://site.ru/cws.php");
// Разрешаем авторедирект
req.AllowAutoRedirect = false;
// Создаем для запроса новый контейнер для хранения сессий
CookieContainer Cooks = new CookieContainer();
// Следующие строки итак понятны
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
// Перед тем как заполнять поля формы, текст запроса конвертируем в байты
byte[] ByteQuery = System.Text.Encoding.ASCII.GetBytes("username=moilogin&passwd=moiparol");
// Длинна запроса (обязательный параметр)
req.ContentLength = ByteQuery.Length;
// Открываем поток для записи
Stream QueryStream = req.GetRequestStream();
// Записываем в поток (это и есть POST запрос(заполнение форм))
QueryStream.Write(ByteQuery, 0, ByteQuery.Length);
// Закрываем поток
QueryStream.Close();
// Объект с ответом сервера
HttpWebResponse httpWebResponse = (HttpWebResponse)req.GetResponse();
// Присваиваем сессию
httpWebResponse.Cookies = req.CookieContainer.GetCookies(req.RequestUri);
if (httpWebResponse.Cookies != null)
{
// Добавляем сессию в наш контейнер для дальнейшего использования
Cooks.Add(httpWebResponse.Cookies);
}
// Открываем поток для чтения
Stream stream = httpWebResponse.GetResponseStream();
// Читаем из потока
StreamReader reader = new StreamReader(stream);
// Возвращаем результат запроса
reader.ReadToEnd();