Asp.net 在web api基本身份验证中发送后续请求的用户凭据

Asp.net 在web api基本身份验证中发送后续请求的用户凭据,asp.net,ajax,asp.net-web-api2,Asp.net,Ajax,Asp.net Web Api2,我正在使用ASP.NETWebAPI开发一个RESTful移动应用程序。我倾向于使用基本身份验证。我在这里关注了一些SO文章,这些文章给了我一个良好的开端。我知道“username:password”将被编码并添加到“Authorization:Basic”中,并在身份验证后将其作为后续http请求的标头发送。但我这里只缺少一件事, 如何在不使用会话或cookie的情况下在每个http请求上发送此“username:password”编码字符串 在表单身份验证中,将设置cookie。在成员资格中

我正在使用ASP.NETWebAPI开发一个RESTful移动应用程序。我倾向于使用基本身份验证。我在这里关注了一些SO文章,这些文章给了我一个良好的开端。我知道“username:password”将被编码并添加到“Authorization:Basic”中,并在身份验证后将其作为后续http请求的标头发送。但我这里只缺少一件事,

如何在不使用会话或cookie的情况下在每个http请求上发送此“username:password”编码字符串

在表单身份验证中,将设置cookie。在成员资格中,将设置用户主体。 所有对web api的http请求都来自ajax,我需要在beforeSend中设置授权头。但是在每个页面ajax请求上,我从哪里获得“username:password”编码字符串呢
或者我这样想是错误的。如何实现这一点?

您必须以某种方式保留该字符串,否则您将无法按以下方式发送该字符串。您必须处理好这一部分-我从哪里获得“username:password”编码字符串

然后将授权方法和一个空格作为“Basic”放在加密字符串之前,如下所示

Authorization: Basic TheEncryptedUserNamePasswordGoesHere

是的,这就是问题所在,根据定义,我的RESTfulWebAPI是无状态的。我确信不建议使用cookie或会话(我不确定这些在移动环境中如何工作)。但是在登录后的每个请求上,我都需要有“用户身份”信息,因为REST设计操作是自包含的,并且每个请求都必须携带服务器需要知道的所有信息(即,用户已经获得了身份验证)。那么我应该如何实现这一点呢?这是两个不同的东西——无状态WebAPI和无状态移动应用程序。您可能有无状态WebAPI,但您肯定可以将用户名/密码保存在移动应用程序的内存(或文件或任何其他可访问的位置)中,该内存可用于附加每个请求。