我是否可以避免在我的Web服务中进行会话身份验证,而无需在每个请求中验证用户名/密码?

时间:2012-12-20 15:44:42

标签: rest authentication asp.net-web-api session-state

我正在使用ASP.NET Web API构建RESTful Web服务。我已经读过使用会话身份验证不是很RESTful,因为在成功完成任何其他请求之前需要“登录”请求。此外,它还要求客户端维持状态。

我的原始设计是让客户端使用SSL上的基本HTTP身份验证调用“登录”请求。然后,Web服务将验证凭据并使用会话密钥进行响应。然后,客户端使用该会话密钥对所有后续请求进行签名。当Web服务收到任何这些请求时,它会查找会话密钥,以相同的方式对请求进行签名,并检查这两个签名是否相等。

是否可以避免此会话身份验证而无需为每个请求发送用户名/密码?凭证验证不会在Web服务中发生(它将路由到维护用户的另一台服务器)。如果我需要验证每个请求,我担心性能会受到影响。

2 个答案:

答案 0 :(得分:1)

这是不可能的。您可以存储状态,也可以获取每个请求的凭据。第二个选项是您希望使用HTTP API。

答案 1 :(得分:0)

取决于“验证”

的含义 你可以,例如缓存应用程序中的哈希(用户名+密码)。并且在子请求请求上检查缓存的条目是否仍然存在。这样您就可以将往返保存到后端商店。