Как выполнить авторизацию на стороннем сайте - 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы