Bonjour à tous.
Je ne savais pas trop où mettre mon message car il fait appel à plusieurs techno.
Donc le point de départ étant une application Winform je poste ma question ici même.
Voila mon problème.
J'ai une application Winform Client.exe.
A son lancement je vérifie que la personne, ayant lancé l'appli, est connectée de cette façon :
Role étant le rôle dans l'active directory qui m'intéresse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole(Role);
Jusque la, pas de problème, je peux faire le tri des personnes pouvant lancer l'application ou non.
Vous noterez, que je tente de faire une connexion de l'utilisation windows connecté au domaine, sans demander un mot de passe (lourd de demander le mot de passe qu'une personne a déjà saisi pour se connecter à windows)
Maintenant l'architecture de mon application pour utiliser la base de données est d'utiliser un webservice.
Donc j'ai un web service qui fournirait les procédures pour la base de données.
J'aimerais que ces web services soient uniquement accessibles par une personne connectée au domaine. (unique domaine dispo sur le réseau)
J'ai donc configuré IIS (v6.1) tant bien que mal pour ne pas accepter les connexions anonyme, et uniquement "intégré windows".
Dans mon Webservice j'ai fais une méthode de test afin de vérifier l'utilisateur.
Voici mes problèmes/Questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [WebMethod] public string HelloWorld() { if (User.Identity.IsAuthenticated) return "Hello World "; else return "Connexion non approuvée : "+Context.User.Identity.AuthenticationType; }
1) Comment dans IIS , doit on configurer pour accepter une connexion windows ? Car du coup, je ne sais pas si j'ai bien fait, ou bien TOUT fait. La nouvelle version IIS étant ignoble à mes yeux tellement c'est le bordel. (Bon c'est sûrement une question d'habitude :p)
Pour le moment je ne peux pas accéder directement via le navigateur au service web, il me demande login/pwd, et ça ne fonctionne pas. (Erreur HTTP 401.1 - Unauthorized) (Oui j'ai bien saisi le bon login/pwd de mon compte windows)
2) Comment à partir de CLIENT.EXE je peux appeler le WebServices en passant un credential de la personne connectée ?
J'ai tenté de faire ça manuellement mais ça ne fonctionne pas. (Erreur 401.1)
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 using (WEBSERVICES.Main s = new WEBSERVICES.Main()) { s.Credentials = new System.Net.NetworkCredential("USER", "PWD", "DOMAIN"); try { myreturn = s.HelloWorld(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Partager