Как выполнить авторизацию на стороннем сайте - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д