Rest 我可以在web服务中避免会话身份验证,而不必验证每个请求中的用户名/密码吗?

Rest 我可以在web服务中避免会话身份验证,而不必验证每个请求中的用户名/密码吗?,rest,authentication,asp.net-web-api,session-state,Rest,Authentication,Asp.net Web Api,Session State,我正在使用ASP.NETWebAPI构建一个RESTfulWeb服务。我已经读到,使用会话身份验证不是非常RESTful的,因为在成功发出任何其他请求之前都需要“登录”请求。此外,它还要求客户端维护状态 我最初的设计是让客户端通过SSL使用基本HTTP身份验证调用“登录”请求。然后,web服务将验证凭据并使用会话密钥进行响应。然后,客户端使用该会话密钥对所有后续请求进行签名。当web服务接收到这些请求中的任何一个时,它会查找会话密钥,以相同的方式对请求进行签名,并检查两个签名是否相等 是否可以避

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

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


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

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

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

取决于“验证”的含义


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

取决于“验证”的含义


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

如果您不想有初始登录请求来验证会话,但也不想验证每个请求,您想要什么?如果您不想有初始登录请求来验证会话,但也不想验证每个请求,您想要什么?使用每个请求进行身份验证还是使用会话状态更好?这与HTTP API的存储状态完全无关。请注意,我没有说“您的REST API”,因为如果您希望您的API成为REST API,则存储状态不是一个选项。使用每个请求进行身份验证还是使用会话状态更好?这与HTTP API的存储状态完全无关。注意,我没有说“您的RESTAPI”,因为如果您希望您的API是RESTAPI,则存储状态不是一个选项。