Bonjour,
Je développe actuellement un service web en WCF/REST. J'utilise dotNet 4.0 et WebServiceHost2 fournit dans le Starter Kit de Microsoft.
J'ai plusieurs [OperationContract] mais toutes ces méthodes nécessitent une authentification de l'utilisateur. Ces méthodes renvoyent différents types sérialisés [DataContract] suivant les besoins.
J'exécute actuellement la méthode ValidateAuthentication() dans le constructeur du service WCF et j'ai défini une exception en créant une classe "Status" que j'envoi via la classe WebProtocolException.
Problème:
Toujours dans le constructeur, je voudrais maintenant pouvoir renvoyer le type que s'attend à recevoir le client. Ce type contiendra aussi un objet sérialisé de type "Status". Mais je ne sais pas comment récupérer le type de retour de la méthode avant que le service rentre dans la méthode.
Pourquoi cette idée ? Parce que j'ai pas vraiment envie d'exécuter la méthode d'authentification à chaque fois que je crée un nouveau [OperationContract], de peur d'oublier cette ligne, ce qui résultera par une GROSSE FAILLE DE SECURITÉ !
J'ai utilisé la classe abstraite RequestInterceptor pour intercépter la requête mais je ne vois pas comment récupérer le type de retour avant que le programme n'atteigne la méthode en question.
Auriez-vous une solution au problème suivant ? Est-ce une bonne approche ? Car ce n'est visiblement pas trivial de mettre en place un système d'authentification des usagers en suivant la philosophie REST.
Merci par avance,
Cyrill
Partager