J'essaye de faire un HttpWebRequest à partir d'une page ASP.Net sur un serveur appelé SV-REQ contre un autre serveur IIS7 appelé SV-RES. Lorsque je définis IIS sur SV-RES pour utiliser Digest, Basic ou Negotiate et que la modification de l'objet de cache des informations d'identification utilise la méthode appropriée, le code s'exécute correctement et j'obtiens une réponse valide de SV-RES confirmant les informations d'identification utilisateur sont corrects. Cependant, lorsque je mets IIS à utiliser "Windows Authentication" sur SV-RES, je reçois une erreur 401 lors de l'utilisation de NTLM dans l'objet de cache des informations d'identification.HttpWebRequest sur HTTPS avec NTLM ne fonctionne pas
Je suis vraiment perdue et je serais reconnaissant si quelqu'un a des informations sur la façon de faire ce travail.
Remarque: Le serveur sur lequel ce code est exécuté s'exécute sous authentification anonyme via HTTP. Le serveur recevant la requête est NTLM (comme indiqué précédemment) sur HTTPS comme on peut le voir dans le code ci-dessous.
Il s'agit du code sur SV-REQ en cours d'exécution. SV-REQ est IIS7 et est configuré pour 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
Voici l'erreur que je reviens de SV-RES du code ci-dessus. SV-RES est également configuré pour IIS7 pour 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
Je sais que c'est évident, mais avez-vous vérifié l'utilisateur dont les informations d'identification que vous envoyez sont en fait autorisées? –