我正在使用ASP.NET Web API构建RESTful Web服务。我已经读过使用会话身份验证不是很RESTful,因为在成功完成任何其他请求之前需要“登录”请求。此外,它还要求客户端维持状态。
我的原始设计是让客户端使用SSL上的基本HTTP身份验证调用“登录”请求。然后,Web服务将验证凭据并使用会话密钥进行响应。然后,客户端使用该会话密钥对所有后续请求进行签名。当Web服务收到任何这些请求时,它会查找会话密钥,以相同的方式对请求进行签名,并检查这两个签名是否相等。
是否可以避免此会话身份验证而无需为每个请求发送用户名/密码?凭证验证不会在Web服务中发生(它将路由到维护用户的另一台服务器)。如果我需要验证每个请求,我担心性能会受到影响。
答案 0 :(得分:1)
这是不可能的。您可以存储状态,也可以获取每个请求的凭据。第二个选项是您希望使用HTTP API。
答案 1 :(得分:0)
取决于“验证”
的含义 你可以,例如缓存应用程序中的哈希(用户名+密码)。并且在子请求请求上检查缓存的条目是否仍然存在。这样您就可以将往返保存到后端商店。