C# Rest Web服务和多个客户端的会话处理
我一直在为android本机应用程序开发RESTful Web服务。我选择ASP.NETWebAPI。WEB API使在控制器中创建这些HTTP方法变得非常容易,并将响应对象转换为json/xml。。。简直太棒了 现在是用户身份验证和那些会话处理部分。首先,我认为在RESTful服务中实现会话会更容易。但对于在WebAPI中启用会话的配置,以及让android本机处理这些会话ID的配置,真的很失望C# Rest Web服务和多个客户端的会话处理,c#,android,web-services,rest,asp.net-web-api,C#,Android,Web Services,Rest,Asp.net Web Api,我一直在为android本机应用程序开发RESTful Web服务。我选择ASP.NETWebAPI。WEB API使在控制器中创建这些HTTP方法变得非常容易,并将响应对象转换为json/xml。。。简直太棒了 现在是用户身份验证和那些会话处理部分。首先,我认为在RESTful服务中实现会话会更容易。但对于在WebAPI中启用会话的配置,以及让android本机处理这些会话ID的配置,真的很失望 首先,Android向WEB API发送登录请求 WEB API检查身份验证,并在响应头中使用se
- 访问原点策略:所以我在响应头中将
访问控制允许原点设置为
。这就解决了*
- 现在我需要在jQueryAjax post请求中设置会话id。并发现在调用跨域服务时无法为jQueryAjax设置头
另外,在创建必须从不同客户端应用程序使用的web服务时,需要注意哪些事项?经过大量研究,我得出以下几点: REST是无状态的。那么我们为什么要玩session呢?给它一个有状态的生活 不需要启用会话状态。当用户登录到 我们在数据库中为用户创建一个唯一的id。进一步的 来自用户的请求将发送此唯一id作为消息的一部分 身体。服务器每次检查此唯一id以识别用户 混合应用程序中的跨域问题 将应用程序转换为与cordova混合时,我们发现跨域 问题没有发生。人们相信cordova转换了jquery ajax请求到来自android的本机请求调用。jsonp也是一个很好的解决方案
如果要为用户创建唯一的id并对其进行验证,则需要为每个请求创建一个状态。仅仅因为您没有使用内置的.net框架来管理状态并不意味着您是无状态的。我不是说你错了,这只是语义学。你不是无国籍的。您正在做的是模仿.net框架。只是.net使用cookie来验证会话,并且在消息体中使用唯一的id。