是否需要将每个请求的凭据发送到MVC Web Api?

时间:2015-06-19 06:54:50

标签: authentication asp.net-web-api

我即将创建我的第一个restfull Web服务,我选择MVC WEB API作为"提供商"。在阅读有关身份验证后,我有点困惑。

我的要求是,在调用任何web服务网址时,我希望对客户端进行身份验证,但登录网址除外。

我以这种方式理解流程:在客户端签名后,webservice返回一个客户端必须存储的authenticationtoken,并在头文件中的每个请求上发送给服务器。但是这个令牌存储在webservice上的哪个位置?

如果我想避免用户在每个请求上传递登录参数,我很困惑我必须实现哪些操作流程。

1 个答案:

答案 0 :(得分:2)

通常这是如何工作的,用户的身份验证令牌将存储在cookie中。对用户进行身份验证后,您将为其服务器端创建“会话”。将有一个与此会话对应的“会话令牌”。

当用户登录时,您将为他们创建一个新会话。这将向他们发送一个新的cookie。他们制作的每个未来请求都将包含此cookie。然后,您将使用此cookie来标识用户的会话。从中,您可以绘制用户名等。

听起来你真正想要的是.net状态管理(https://msdn.microsoft.com/en-us/library/75x4ha6s(v=vs.140).aspx)。您应该考虑使用它,并了解如何将其应用于您当前的需求。

从长远来看,一旦你有了正确的用户会话令牌,你就不需要在每次请求时发送他们的凭据。会话令牌足以在用户发出的每个请求时识别用户身份。