Авторизація на сайтах c# Однією з цікавих тем у програмуванні є наслідування роботи браузерів та людей. Певний тандем. Це число включає, наприклад, авторизацію на сайті. Тут програма повинна мати можливість запитувати сторінку з входом, заповнити поля та отримати результат. На прикладі одного сайту я покажу, як це зробити. Отже, в одному з замовлень його потрібно було спричинити закритим вмістом сайту. Закрито від незареєстрованих користувачів. Розробка себе (наприклад, використовуючи CSQUERY) Ми вже вивчали, але як обійти вхідну форму? Насправді це просто, але потрібна уважність. Ну, щось, звичайно, просто потрібно знати. Я не покажу вам робочий сайт, ми входимо в приклад іншого, але принцип роботи абсолютно однаковий. Ось сайт - Keft.ru. Припустимо, ми зареєструвались там, і тепер ми хочемо навчитися автоматично входити. Якщо ви подивитесь на вихідний код сайту, то ми побачимо процесор форми вступу: Давайте спробуємо надіслати звичайний запит на цю адресу та отримати відповідь. Ми напишемо наступний код: Httpclient h = новий httpclient (); Значення var = новий словник; Вміст var = новий FormUrlencodedContent (значення); Var відповідь = чекайте h.postasync ("https://www.keft.ru/ajax/keft/login.php", вміст); Var responseString = очікувати відповіді.content.redasstringasync (); TextBox1.Text = Відповідь; Давайте спробуємо виконати його і отримати: Що ж, ми отримуємо повністю логічний і очікуваний результат: сервер вимагає авторизації. Давайте подивимось, що надсилає браузер даних для авторизації. Ми переходимо на вкладку Мережа, вибираємо файл login.php та переглянемо інформацію про розміщення. Тут нас цікавить дві речі: сформовані поля форм та заголовки запиту. Зареєстровані поля виглядають так: Зверніть увагу, що крім двох полів входу та пароля, є ще одне поле Login_OK, яке надсилається порожнім - це кнопка. Ну, додайте інформацію до нашого коду: Значення var = новий словник,>; Далі ми дивимось на відправлені заголовки: Додайте їх до нашого прохання: h.defaultrequestheaders.add ("прийняти", "text/html, додаток/xhtml+xml, додаток/xml; q = 0,9, зображення/webp, зображення/apng,*/*; q = 0,8"); h.defaultrequestheaders.Add ("Прийнята мова", "ru-ru, ru; q = 0,9, en -us; q = 0,8, en; q = 0,7, pl; q = 0,6"); H.defaultrequestheaders.add ("кеш-контроль", "max-age = 0"); H.defaultrequestheaders.add ("з'єднання", "Keep-alive"); H.defaultrequestheaders.accept.add (новий MediaTypewith -qualityHeadervalue ("Застосування/X-WWW-Form-Urlencode"); H.defaultrequestheaders.add ("оновлення-анкети", "1"); H.defaultrequestheaders.add ("походження", "https://fool.keft.ru"); H.defaultrequestheaders.add ("Agent користувача", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebkit/537.36 (Khtml, як Gacco) Chrome/71.0.3578.98 Safari/537 .36"); h.defaultrequestheaders.add ("рефератор", "https://fool.keft.ru/"); H.defaultrequestheaders.add ("хост", "www.keft.ru"); H.defaultrequestheaders.add ("прийняття-charset", "ISO-8859-1"); Ми намагаємось виконати модифікований код за допомогою дозволу повідомлення про запиту: І без проблем ми входимо на сайт. Вимоги до програми: Потрібна рамка 4,5 або вище; використання system.net.http; використання system.net.http.headers; І тоді все залежить від ТК або вашої уяви. Наприклад, ви можете підключити CukieContainer, в якому ви можете зберігати отримані файли cookie, а потім надсилати інші запити на сайт та розбирати закриту інформацію. Або створити ботів. Є питання? Напишіть, я допоможу вам за певну плату. Автор цього матеріалу - я - Пакхольков Юрій. Я надаю послуги для написання програм у Java, C ++, C# (а також консультую на них) та створюю сайти. Я працюю з сайтами на CMS OpenCart, WordPress, Modx та Self -Worten. Крім того, я працюю безпосередньо з JavaScript, PHP, CSS, HTML - тобто я можу доопрацювати ваш сайт або допомогти у веб -програмуванні. Пишіть сюди.