У меня есть несколько веб-сервисов. Одна из этих служб используется для извлечения идентификатора сеанса (аутентификации). Я передаю этот идентификатор, когда вызываю другие службы через SessionInfo. Я хочу использовать WCF вместо классических веб-методов. Как я могу поделиться одним сеансом между несколькими клиентами wcf?Как я могу поделиться одним сеансом между несколькими клиентами wcf?
ответ
Непонятно, что вы подразумеваете под сессией. WCF поддерживает четыре типа сеансов:
- Транспортная сессия - для транспортного протокола, который поддерживает сеанс между сервером и клиентом. Например: Net.Tcp, Net.Pipe
- Надежная сессия - поддержка надежной доставки по ненадежному каналу, если работают как клиент, так и сервер
- Сеанс безопасности - клиент должен быть аутентифицирован только для первого вызова, последующий вызовы аутентифицируются с помощью токена сеанса. Этот сеанс также называется контекстом безопасности.
- Сессия приложения - это имеет смысл для IsInitiating и IsTerminating параметров контракта на работу и PerSession instancing. Этот сеанс можно использовать, только если используется какой-либо из предыдущих сеансов = он не может использоваться в BasicHttpBinding, поскольку он не поддерживает транспорт, надежность и сеанс безопасности.
Все эти сеансы связаны с связью между прокси-сервером и единственным экземпляром службы. Больше ничего не предоставляется из коробки. Кроме того, нет специального «сеансового» объекта.
А что именно вы пытаетесь достичь? Вы собираетесь заменить службы ASMX, которые используют сеанс ASP.NET? В этом случае проверьте это sample.
Edit:
Идея о получении одного Id от первой службы и повторное использование этого Id на последующих вызовах нескольких служб следует назвать corelation (одна большая активность/сделка) или федерация (связанной безопасности) не сессия.
Как marc_s говорит, что вы не можете поделиться сеансом.
Но что вы можете сделать, это передать идентификатор сеанса в качестве параметра в ваших вызовах WCF, чтобы вы знали, от кого вы звоните.
Убедитесь, что вы используете шифрование для этих вызовов.
Рекомендованный путь к этому - вручную поддерживать состояние сеанса между вызовами. Вы генерируете идентификаторы сеанса так, как хотите, и загружаете/сохраняете информацию о сеансе в базу данных при каждом вызове, используя свою собственную логику.
Делая это, вы будете поддерживать сеансы в пути, которые позволят:
- балансировки нагрузки
- сеанс обмена
- Сбой над
- 1. Как я могу поделиться одним объектом с несколькими наборами Scalatest?
- 2. Как поделиться сеансом между проектом MVC и проектом WCF?
- 3. Как я могу поделиться одним UIManagedDocument между разными объектами?
- 4. Как я могу обмениваться сеансом между несколькими поддоменами в ASP.NET?
- 5. Как поделиться сеансом между Symfony2 и Wordpress
- 6. Как я могу поделиться сеансом MockMvc с HtmlUnit?
- 7. Как я могу поделиться навигационным ящиком между несколькими действиями?
- 8. Как я могу поделиться «единицей работы» между несколькими методами обслуживания?
- 9. Как я могу поделиться библиотекой классов между несколькими приложениями?
- 10. Как поделиться одним значением между несколькими объектами? C#
- 11. android - поделиться сеансом между двумя веб-просмотрами?
- 12. cakephp3 как поделиться одним coreto несколькими сайтами
- 13. Поделиться сеансом между HTTPURLCONNECTION и WebView
- 14. Как я могу поделиться одним сеансом на двух разных сайтах в PHP и Drupal
- 15. Поделиться сеансом между доменом и субдоменом
- 16. Проблема блокировки WCF с несколькими клиентами!
- 17. Поделиться сеансом между портлетом liferay и сервлетом
- 18. Обратный вызов WCF с несколькими клиентами
- 19. Обмен сеансом между службами WCF
- 20. Я хочу поделиться сеансом между различными поддоменами в zencart
- 21. Связь WCF с несколькими клиентами без IIS
- 22. Как я могу поделиться классом между процессами?
- 23. Как я могу поделиться NSString между классами
- 24. Поделиться переменной между несколькими потоками
- 25. Как поделиться Websphere MQ QM и слушателем между несколькими удаленными клиентами?
- 26. Связь между клиентами
- 27. Как я могу проверить сервер socket.io с несколькими клиентами?
- 28. Синхронизация данных между сервером и несколькими клиентами
- 29. Могу ли я поделиться HttpRuntime.Cache между приложениями?
- 30. Как поделиться сеансом между NodeJs и PHP с помощью Redis?
Мой вопрос немного глупо .. Я решил проблему другим способом. Но ваш ответ очень интересен и полезен для меня. – RredCat