1

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

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

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

4

2 回答 2

1

这是不可能的。您可以存储状态或获取每个请求的凭据。第二个选项是您想要的 HTTP API。

于 2012-12-20T15:54:56.600 回答
0

取决于您对“验证”的含义

例如,您可以在您的应用程序中缓存哈希(用户名+密码)。并且在子请求请求中检查缓存的条目是否仍然存在。通过这种方式,您可以节省到后端商店的往返行程。

于 2012-12-20T20:59:49.480 回答