Установка учетных данных, как показано ниже
request.Credentials = new NetworkCredential("UserName", "Password");
была бы возможна, если страница принимает учетные данные (базовая аутентификация), что, по моему опыту, в большинстве случаев не так.
Если вы хотитечтобы использовать WebRequest, вам нужно будет предоставить заголовки, файлы cookie, и вам потребуется контейнер для файлов cookie, а теперь о том, как получить файлы cookie, - это другая история.
Поскольку вы используете элемент управления WebBrowser
.Самый простой способ, который я бы предложил, это сначала перейти на страницу входа, заполнить учетные данные и нажать кнопку «Отправить».затем перейдите к нужной странице страницы:
private void webbrowser1_DocumentCompleted(object sender, DocumentCompletedEventArgs e)
{
if(webbrowser1.Url.EndsWith("login.aspx") //check if it is the login url
{
var doc = webbrowser1.Document;
doc.GetElementById("email").SetAttribute("value", email);
doc.GetElementById("password").SetAttribute("value", password);
doc.GetElementsByTagName("input").OfType<HtmlElement>()
.FirstOrDefault(x => x.GetAttribute("type") == "submit"))
.InvokeMember("click");
}
else
{
webbrowser1.Navigate(repUrl);
}
}
В приведенном выше ответе я только что предположил, что страница входа в систему login.aspx
, а поля электронной почты и пароля имеют идентификатор email
и password
,конечно, вы должны изменить способ заполнения этих входных данных своими id
s или, если у них нет идентификатора, использующего их имена, ...