Exact, c'est ce que je cherche à faire.
C'est le protocole NTLM qui fonctionne comme ça, et les navigateurs sont conçus pour fonctionner avec.
En gros t'as un proxy qui est configuré pour chercher si il utilisateurs sont authentifiés auprès de l'active directory, toi t'as ton navigateur qui est configuré pour utiliser le proxy. Quand tu cherche à te connecter, le proxy t'envoie balader une première fois puis instancie une "négociation". Là, le navigateur envoi les identifiants windows si t'es connecté au même domaine que l'active directory, si c'est pas le cas, il te les demande (boite de dialogue), et le proxy fait le reste.
Dans mon appli je veux reproduire ce que fait le navigateur (sans l'option boite de dialogue), c'est a dire faire une requête vers l'extérieur et répondre comme il faut que proxy en passant les identifiants windows. Normalement C# gère tout seul ces échanges. Mais peut être que je dois aussi me faire un script qui récupère les identifiants windows si c'est pas le cas, pour utiliser la deuxième solution qui a l'air de marcher.
Edit : pourtant il me semblait que :
webProxy.UseDefaultCredentials = true;
était censé passer les identifiants windows, jme trompe?
Edit 2 : d'après la doc :
1 2
| // Assign the credentials of the logged in user or the user being impersonated.
myHttpWebRequest.Credentials = CredentialCache.DefaultCredentials; |
Ceci devrait normalement envoyer les identifiants avec la requête, étrange que ça ne fonctionne pas...
Partager