我们正在开发一些原生移动应用程序。这些应用程序使用REST服务。它是WCF服务。我们在WCF中使用HttpContext.Current.Session["Key"]=Value
来保存一些细节。
WCF服务可以保存Windows客户端的会话信息吗?
参考:WCF sessions with a wsHttpBinding and without windows security
答案 0 :(得分:2)
WCF服务可以保存Windows客户端的会话信息吗?
首先, - 链接的文章不相关,因为虽然 wsHttpBinding 支持会话,但它不是RESTful绑定。
如果您在WCF中托管REST服务,则无法访问本机会话,因为 webHttpBinding (WCF中用于REST服务的绑定)不支持会话。
因此,虽然您可以访问HttpContext.Current,但Session属性将为null。
其次,可以说会话的使用违反了RESTful原则(参见帖子here)。这是因为HTTP本质上是一个无状态的。
如果确实需要会话,则要么必须使用基于SOAP的绑定(如wsHttpBinding),要么实现某种方式为服务本身的给定用户存储状态。