Contrôl d'accès à un service Web
Le
Oriane

Bonjour,
j'ai fait un site en Asp.Net 2.0 avec une authentificatin par formulaire, en
utilisant le provider de sql. Ce site fait appel à un service Web (une page
asmx). J'aimerais limiter le contrôle d'accès à ce service Web, mais je ne
vois pas comment procéder. Pour l'instant j'en suis réduite à être en mode
anonyme pour que le service puisse être appelé depuis le site.
Normalement l'id qui exécute asp (aspnet sur XP) est le compte qui doit être
autorisé à interroger le service Web, puisque c'est bien sous ce compte que
le site contacte le service non ?
Merci de vos réponses
Oriane
j'ai fait un site en Asp.Net 2.0 avec une authentificatin par formulaire, en
utilisant le provider de sql. Ce site fait appel à un service Web (une page
asmx). J'aimerais limiter le contrôle d'accès à ce service Web, mais je ne
vois pas comment procéder. Pour l'instant j'en suis réduite à être en mode
anonyme pour que le service puisse être appelé depuis le site.
Normalement l'id qui exécute asp (aspnet sur XP) est le compte qui doit être
autorisé à interroger le service Web, puisque c'est bien sous ce compte que
le site contacte le service non ?
Merci de vos réponses
Oriane
Si tu as activé l'authentification Windows au niveau de ton webservice,
lorsque tu contactes celui-ci, ton client (Navigateur, application,...etc)
envoie des informations sur le compte Windows qui execute l'application.
Ensuite le webservice envoie ces informations à IIS et c'est IIS qui
contrôle si ce compte possède les droits pour executer "une page asmx". Si
l'utilisateur n'est pas autorisé un erreur "403 et des brouettes" est
envoyé...
Dans ton cas, c'est le compte "ASP .NET" qui est envoyé...
Cependant ce genre d'authentification ne fonctionne que si tout ce petit
monde se trouve dans le même domaine Windows... Sinon il faut passer par
un autre mécanisme d'authentification (login + mot de passe avec des
variables session) ou alors une autre solution moins pratique pour les
clients, mais très facile à implémenter, dans chaque méthode [WebMethod]
tu passes un paramètre qui contient une clé et tu la contrôle dès le début
de la méthode. Ce genre de procédé est utilisé si à la base tu n'actives
pas les sessions pour des questions de performances...
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
"Gilles TOURREAU" news:
Oui mais le compte ASPNET (dans mon cas c'est "service réseau") n'est pas
autorisé dans ce cas. C'est pourtant un compte Windows...mais est-ce
vraiment un compte standard ?
Pour moi c'est sur un Intranet. Donc pas de pb de domaine.
[...]
Merci de ta réponse
Le compte ASPNET est crée au moment de l'installation du Framework .NET
(après IIS) ou via la ligne de commande "aspnet_regiis...".
C'est un compte standard, mais on peut le renommer...
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
"Gilles TOURREAU" news:
Oui bien sûr mais pourquoi en activant l'authentification Windows sur le
service Web appelé par ce compte, ai-je une erreur d'authentification ?
Cordialement
Avez-vous vérifiez la propriété Credentials quand vous appelez votre
WebService ?
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Non mais comment faire cela ?
Credentials représente grosso-modo le mode d'authentification + les
informations d'authentifications.
Il faut affecter le bon Credentials à votre proxy...
Utilisez CredentialCache.DefaultCredentials pour prendre l'utilisateur en
cours avec une authentification Windows NTLM...
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr