jeudi 26 août 2010

WebServices et la gestion des sessions

Par nature, les WebServices sont Stateless.
Cependant, il est quelque-fois nécessaire de maintenir un état permettant, par exemple, de savoir si le client est passé par la méthode "connect" pour être authentifiée auprès de l'application.

A cette fin, l'usage d'une session ASP.Net dans un Web Service peut s'avérer fort utile.
A lire:
Il est cependant regrettable de constater qu'il n'y a pas de solution "out-of-the-box".
Dans le cas le plus simple, il est nécessaire de modifier le client du Web Service pour qu'il gère les cookies.
Si cela est encore simple en .Net (mais s'oublie facilement), cette exigence ne pourrait pas être rencontrée facilement sous d'autres plateformes... et c'est sans compter sur coopération des différents acteurs impliqués dans le développement.


A noter que Dr Bob s'est également penché sur le problème... ce qui produit un l'excellent article ASP.NET Web Services and Sessions.

Petite question perso:
Après la lecture des articles, je me demande s'il n'est pas possible d'adresser directement la collection des HttpSessionState dans le WebService pour ajouter et retrouver ma session.

Une méthode connect (au passage obligé) retournerait alors directement la valeur du SessionID.
Cette même valeur devenant un paramètre obligatoire de toutes les autres méthodes du WebService au l'authentification/l'identification est requise.
Il serait alors possible à la méthode du WebService de récupéer directement le HttpSessionState correspondant.


Un peu de lecture autour des WebServices

Aucun commentaire: