如何在Restful WCF服务中管理会话

如何在Restful WCF服务中管理会话,wcf,rest,Wcf,Rest,我想使用Restful WCF服务的客户端应用程序管理会话。客户端应用程序可以是J2me应用程序或.NET应用程序 在RESTFUL WCF服务中维护会话的推荐方法是什么 其思想是识别请求来自已通过身份验证的客户机。REST定义交互是无状态的,服务器上没有维护客户机状态,因此您希望从RESTful接口移开 我无法想象您希望在提供WCF服务的服务器上维护客户端状态的情况。我认为您需要查看您的体系结构,因为您可能会给自己带来很多技术债务。这个问题可能对您有用: 我认为restful在这里要做的事情是

我想使用Restful WCF服务的客户端应用程序管理会话。客户端应用程序可以是J2me应用程序或.NET应用程序

在RESTFUL WCF服务中维护会话的推荐方法是什么


其思想是识别请求来自已通过身份验证的客户机。

REST定义交互是无状态的,服务器上没有维护客户机状态,因此您希望从RESTful接口移开


我无法想象您希望在提供WCF服务的服务器上维护客户端状态的情况。我认为您需要查看您的体系结构,因为您可能会给自己带来很多技术债务。

这个问题可能对您有用:


我认为restful在这里要做的事情是在每个请求上发送用户凭据,如果您可以以对用户透明且不损害凭据的方式这样做的话。如果您不能做到这一点,那么仅用于维护客户身份的cookie已经成为restful服务开发人员的共同让步。不要用cookie存储任何其他内容。

我的服务将对移动应用程序和标准asp.net应用程序以及将来的一些flex和silverlight开放。我的服务还有一种验证用户的方法。我在WCF中还有其他几种方法,但一旦验证,我就不希望发送用户凭据对于每一个请求,都要重复一次。我认为将cookie添加到头中可能会解决这个问题。正如您所说,这违反了使用REST的原则,您能推荐其他好的方法来维护每个请求的用户身份吗。@Kunal:我同意上面的@StudeyMatt,方法是在每个请求中发送凭据。也就是说,除非您正在使用固有的协议身份验证(即HTTP auth),否则您正在将提供的凭据与备份存储进行比较。如果您随后生成一个要传回的会话ID,则可能会将其保存在同一备份存储中。当下一个请求到达时,您将把令牌与备份存储区进行比较,以查看用户是否经过身份验证。。。与原始身份验证请求完全相同,因此只需添加创建和存储ID的工作。