J'ai plusieurs services Web. Un de ces services est utilisé pour récupérer un identifiant de session (authentification). Je transmets cet identifiant lorsque j'appelle d'autres services via SessionInfo. Je veux utiliser WCF au lieu des méthodes Web classiques. Comment puis-je partager une session entre plusieurs clients de wcf?Comment partager une session entre plusieurs clients de wcf?
Répondre
On ne sait pas ce que vous entendez par session. WCF prend en charge quatre types de sessions:
- Session de transport - pour le protocole de transport qui maintient la session entre le serveur et le client. Par exemple: Net.Tcp, Net.Pipe
- Session fiable - prise en charge d'une distribution fiable sur un canal non fiable si le client et le serveur sont en cours d'exécution
- Session de sécurité - le client doit être authentifié uniquement pour le premier appel, après les appels sont authentifiés par le jeton de session. Cette session est également appelée contexte de sécurité.
- Session d'application - ceci a une signification pour les paramètres IsInitiating et IsTerminating du contrat d'opération et de l'instanciation PerSession. Cette session peut être utilisée uniquement si l'une des sessions précédentes est également utilisée = elle ne peut pas être utilisée dans BasicHttpBinding car elle ne prend pas en charge les sessions de transport, de fiabilité et de sécurité.
Toutes ces sessions sont liées à la communication entre un proxy client unique et une instance de service unique. Rien d'autre n'est fourni hors de la boîte. De plus, il n'y a pas d'objet "session" spécial.
Alors, qu'essayez-vous exactement de réaliser? Allez-vous remplacer les services ASMX utilisant la session ASP.NET? Dans ce cas, vérifiez ce sample.
Edit:
L'idée de recevoir seul identifiant du premier service et la réutilisation de cette identification sur les appels suivants à plusieurs services devrait être appelé corelation (une grande activité/transaction) ou d'une fédération (sécurité liée) non session.
Comme marc_s dit que vous ne pouvez pas partager la session. Mais ce que vous pouvez faire est de passer l'identifiant de session en tant que paramètre dans vos appels WCF, de sorte que vous sachiez sur qui l'appel est fait.
Assurez-vous d'utiliser le cryptage sur ces appels.
La manière recommandée est de maintenir manuellement l'état de la session entre les appels. Vous générez des ID de session comme vous le souhaitez et chargez/conservez les informations de session dans une base de données à chaque appel en utilisant votre propre logique.
En faisant cela, vous soutiendrez les sessions d'une manière qui permettra:
- équilibrage de charge
- session de partage
- fail over
- 1. Comment partager une vue entre plusieurs activités
- 2. Comment puis-je partager des objets proxy entre plusieurs clients de service Web Axis2?
- 3. partager env-entre plusieurs ejb
- 4. WCF Authentification de clients dans plusieurs services
- 5. WCF clients consommant plusieurs services
- 6. Comment partager une valeur d'étiquette entre plusieurs versions de CruiseControl.NET?
- 7. Comment partager une propriété entre plusieurs scripts de construction TFS?
- 8. Partager une chaîne de connexion entre plusieurs projets Web
- 9. Synchronisation d'objets entre plusieurs clients Algorithme
- 10. Partager des propriétés entre plusieurs classes
- 11. Comment partager une session avec une application Erlang
- 12. partager session php
- 13. Comment partager les paramètres de configuration entre plusieurs applications
- 14. Comment partager une table un-à-plusieurs
- 15. Partager des données de session entre Rails et PHP
- 16. Comment déboguer un service WCF connecté avec plusieurs clients - .NET
- 17. Comment partager une variable entre deux classes?
- 18. Communication de WCF avec plusieurs clients sans IIS
- 19. Partager la session entre le domaine et le sous-domaine
- 20. Comment partager au mieux un NSMenu entre plusieurs instances NSPopUpButton
- 21. Comment partager DAL et BLL entre plusieurs applications .NET?
- 22. Déploiement ASP.NET - Comment partager BIN entre plusieurs projets WebApp?
- 23. Persistance de la session entre plusieurs domaines?
- 24. Certificats clients dans wcf
- 25. Comment partager une session avec une application PHP
- 26. Clients du service WCF
- 27. GWT, avec plusieurs clients
- 28. Comment communiquer/partager une session entre des pages via HTTP et HTTPS
- 29. Partager les paramètres WCF entre le service et le client
- 30. comment puis-je partager une session asp.net entre http et https
Ma question est un peu stupide .. J'ai résolu le problème d'une autre manière. Mais votre réponse est très intéressante et utile pour moi. – RredCat