Я пытаюсь сделать HttpWebRequest с страницы ASP.Net на сервере под названием SV-REQ на другом сервере IIS7 с именем SV-RES. Когда я устанавливаю IIS на SV-RES для использования Digest, Basic или Negotiate и внесение изменений в объект кеш-данных для использования соответствующего метода, код выполняется отлично, и я получаю корректный ответ от SV-RES, подтверждающий, что учетные данные пользователя являются правильными. Однако, когда я устанавливаю IIS для использования «Аутентификации Windows» в SV-RES, я возвращаю ошибку 401 при использовании NTLM в объекте кеша учетных данных.HttpWebRequest через HTTPS с NTLM не работает
Я действительно в недоумении и был бы признателен, если у кого-то есть информация о том, как сделать эту работу.
Примечание. Сервер, на котором выполняется этот код, работает под анонимной аутентификацией по протоколу HTTP. Сервер, получающий запрос, - это NTLM (как указано ранее) по HTTPS, как показано в приведенном ниже коде.
Это код исполняемого файла SV-REQ. SV-REQ является IIS7 и сконфигурирован для ASP.Net 2.0
Dim credCache As CredentialCache = New CredentialCache()
Dim mUri As Uri = New Uri("https://sv-res.my-domain-here.com/default.htm")
Dim mreq As HttpWebRequest = WebRequest.Create(mUri.ToString)
credCache.Add(mUri, "NTLM", New NetworkCredential(muser, mpass, mdomain))
mreq.Credentials = credCache
Dim mres As HttpWebResponse = mreq.GetResponse
Вот ошибку я получаю назад от SV-RES из кода выше. SV-RES также является IIS7, настроенным для ASP.Net 2.0
The remote server returned an error: (401) Unauthorized. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Net.WebException: The remote server returned an error: (401) Unauthorized. Source Error: Line 31: credCache.Add(mUri, "NTLM", New NetworkCredential(muser, mpass, mdomain)) Line 32: mreq.Credentials = credCache Line 33: Dim mres As HttpWebResponse = mreq.GetResponse Line 34: Dim sr As StreamReader = New StreamReader(mres.GetResponseStream()) Line 35: txtResult.Text = sr.ReadToEnd() Source File: C:\inetpub\httproot\contentscan.aspx.vb Line: 33 Stack Trace: [WebException: The remote server returned an error: (401) Unauthorized.] System.Net.HttpWebRequest.GetResponse() +1126 contentscan.Page_Load(Object sender, EventArgs e) in C:\inetpub\httproot\contentscan.aspx.vb:33 System.Web.UI.Control.OnLoad(EventArgs e) +132 System.Web.UI.Control.LoadRecursive() +66 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
Я знаю, что это очевидно, но вы проверили пользователя, чьи учетные данные, которые вы отправляете, действительно разрешены? –