我有几个网络服务。其中一项服务用于检索会话ID(身份验证)。我通过SessionInfo调用其他服务时传递此id。 我想使用WCF而不是经典的Web方法。如何在几个wcf的客户端之间共享一个会话?
答案 0 :(得分:2)
目前尚不清楚会话是什么意思。 WCF支持四种类型的会话:
所有这些会话都与单个客户端代理和单个服务实例之间的通信有关。开箱即用,没有提供任何其他东西。此外,没有特殊的“会话”对象。
那你究竟想要实现什么目标?您是否要替换使用ASP.NET会话的ASMX服务?在这种情况下,请检查此sample。
修改强>
从第一个服务接收单个Id并在后续调用多个服务时重用此Id的想法应该称为corelation(一个大活动/事务)或联合(安全相关)而不是会话。
答案 1 :(得分:0)
正如marc_s所说,你无法分享会话。
但是您可以做的是将会话ID作为WCF调用中的参数传递,以便您知道代表正在进行调用。
确保对这些来电使用加密。
答案 2 :(得分:0)
推荐的方法是通过手动维护呼叫之间的会话状态。您可以按照自己的方式生成会话ID,并使用您自己的逻辑在每次调用时将会话信息加载/保存到数据库中。
通过这样做,您将以支持:
的方式支持会话