2008-10-27 7 views
13

Pour un service WCF de type entreprise, où potentiellement 10K de milliers de clients vont s'authentifier et envoyer des données aux serveurs centraux, quelle est la meilleure pratique en matière de sessions ou d'authentification?sessions WCF ou passe nom d'utilisateur/mot de passe par appel?

  1. Est-ce que WCF supporte une session, si oui, dois-je l'utiliser? ou devrais-je simplement passer le nom d'utilisateur/mot de passe par appel?
+1

J'ai réfléchi longuement à cette question: http://stackoverflow.com/questions/345414/aspnet-web-site-windows-forms-app-wcf-service-client-credentials. Vous pourriez le trouver utile. –

Répondre

1

WCF prend en charge les sessions yes; mais ils sont pas comme des sessions ASP.NET. Les sessions sont là pour délivrer des messages dans l'ordre (et d'autres bits et bobs), ils ne sont pas là pour ajouter du stockage partagé entre les appels.

Pour les appels de service authentifiés, vous devez envoyer vos informations d'authentification à chaque fois; la sécurité est appliquée par message.

12

En tant que blowdart mentionné, les sessions WCF ne sont pas les mêmes que les sessions ASP.NET. Vous pouvez lire sur eux ici: http://msdn.microsoft.com/en-us/library/ms733040.aspx. Avant de lancer votre propre sécurité, vous devez vous familiariser avec ce que WCF vous offre dès le départ: http://msdn.microsoft.com/en-us/library/ms734736.aspx. Ils peuvent vous rapprocher de votre objectif sans écrire beaucoup de code. Plus précisément, consultez How to: Create a Secure Session. Avec les sessions sécurisées, les informations d'identification du cache Client et Serveur vous évitent d'avoir à vous authentifier complètement à chaque requête. Par défaut, vous perdrez une session sécurisée si le serveur Web recycle. Si vous voulez une session sécurisée qui dure grâce à un recyclage, vous devez regarder How to: Create a Stateful Security Context Token for a Secure Session.

-1

Si vous hébergez le service dans IIS, vous pouvez toujours utiliser la session provenant de ASP.NET en activant la compatibilité aspnet pour le comportement du service.

Questions connexes