我们有一个REST应用程序,主要由不需要维护其状态的应用程序使用,所以到目前为止,我们已经安静地"RESTFUL"而没有维持状态.我们使用Private/Public(类似于Amazon)进行身份验证.目前,客户端会为每个请求传递凭据
现在我们有一个新的要求,我们必须维持状态(或对话).客户端可以是Rich应用程序或手持设备.我正试图用最好的方式来实现状态.我们应该传递一个会话ID并维护该ID ..是最好也是唯一的解决方案?
传递会话 ID 不是维护会话状态的唯一方法,也不是最好的方法。如果您有 RIA,最好的方法是维护客户端本身的状态,即它所属的位置,正如一些评论所建议的那样。这意味着每个请求仍然发送凭据。
对每个请求重新进行身份验证是唯一的方法,如果您认为服务器的性能受到影响,服务器可以(按照建议)将身份验证请求的结果缓存一段时间。 摘要式身份验证可以通过对网络上传输的令牌进行加密签名来帮助避免缓存响应。
如果这还不够好,您可以使用类似于 Google ClientLogin的东西,并为客户端提供一个加密令牌,该令牌可以在不需要请求授权的情况下进行验证,并且无需通过网络传递用户的真实凭据。Google 自己通过 https 进行登录,然后通过 http 使用生成的令牌。在令牌的生命周期内,它对重放攻击开放。
| 归档时间: |
|
| 查看次数: |
5005 次 |
| 最近记录: |