Я хотел бы попросить вас о помощи по следующему коду, который я быстро написал, beucase Я всегда получаю «403 FORBIDDEN».C# HttpWebRequest - PreAuthenticate: все еще возвращает 401 запрещен (HTTPS)
HttpWebRequest pozadavek = (HttpWebRequest)WebRequest.Create("LINK THAT ASKS FOR AUTHLOGIN"); //https
System.IO.StreamReader stream = null;
System.String result = null;
public Form1()
{
InitializeComponent();
pozadavek.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
pozadavek.Credentials = new NetworkCredential("NAME", "PASS");
pozadavek.PreAuthenticate = true;
}
private void Form1_Load(object sender, EventArgs e)
{
WebResponse webresponse = pozadavek.GetResponse(); //throws an exception:403 forbidden
stream = new System.IO.StreamReader(webresponse.GetResponseStream());
result = stream.ReadToEnd();
this.webBrowser1.DocumentText = result;
}
Нет, ни с «истинным» и «ложь» это то же самое. Я не уверен, правильно ли это, открывая ссылку в браузере, откроется всплывающее окно с запросом на имя пользователя и пароль. – Snake
Если «аутентификация» выполняется через всплывающее окно, оно изначально выполняется на стороне клиента. Ваш запрос никогда этого не увидит. Похоже, сайт использует некоторую аутентификацию форм. Возможно, вы можете получить прямой URL-адрес на странице входа, но даже тогда использование свойства Credentials, вероятно, не будет работать, вам нужно будет отправить имя пользователя/pwd на страницу с помощью запроса POST. –
О, я вижу, что есть «https». Я изменил URI в программе и теперь получаю 401 ... любые идеи, пожалуйста? – Snake