В зависимости от используемой схемы авторизации это может быть либо очень просто, либо сверхтвердо / невозможно.
Итак, давайте сначала посмотрим, что можно сделать с помощью AngleSharp:
- Любой видзапросы вкл.их манипуляции (по запросу, но также и до ответа)
- Общее управление файлами cookie (и их манипулирование, конечно же)
- Запрос DOM и выполнение «простых» действий (например, нажатие кнопки,отправка формы)
- Запуск тривиальных файлов JavaScript
Здесь тривиальное средство: сценарии, которым не нужны какие-либо возможности, помимо предлагаемых AngleSharp, например, рендеринг информации о дереве, расширенный доступ CSSOM,... - или сценарии, которые требуют парсеры, не совместимые с ES5 (например, используют ES6 или некоторые специальные нестандартные возможности).
Теперь, так как я не знаю, какую схему авторизации или точную проблему вы решаетебьют (некоторый код / MWE был бы полезен!) Я просто пойду для простого примера щелчка.
var context = BrowsingContext.New(Configuration.Default.WithDefaultLoader().WithCookies());
var loginPage = await context.OpenAsync("http://yourpage.com");
var loginForm = loginPage.QuerySelector<IHtmlFormElement>("form");
var profilePage = await loginForm.SubmitAsync(new { userName = "myUser", password = "password" });
// get something on profilePage
Обратите внимание, что в этом примере имена полей формы для формы входа в систему userName
иpassword
- они могут отличаться для вашей страницы входа.Также обратите внимание, что ваша страница может содержать несколько форм, и селектор может быть более сложным, чем простой form
.
HTH!