后续REST API请求出现401未经授权的错误

时间:2020-11-10 17:18:14

标签: c# asp.net-web-api2

在第一次成功响应200 OK之后,我在后续REST API请求上收到 401未经授权错误。请参见下面的重现步骤。

复制步骤:

  1. 验证并获取授权令牌-成功 enter image description here

  2. 提交第一个API请求-成功

enter image description here

  1. 提交后续API请求- 401未经授权

enter image description here

注意:当我在本地调试或在Azure上部署时,此方法工作正常。但是,我在一个托管环境中得到401 Unauthorized 。并且支持人员会费力而无法解决此问题。

注意:您可能在屏幕截图中看到了不同的承载令牌,但我在所有请求中都传递了相同的令牌。

  • 为什么只在1个托管环境和后续请求上出现问题?
  • 我需要对我的web.config文件进行任何特定的更改,以便以后的请求被相同的承载令牌识别吗?

更新1 : 下面是我的域(401)和天青(200 ok)并排放置的响应。我看到Azure还在Cookie中发送了ARRAffinity和ARRAffinitySameSite。希望此信息对您有所帮助。

enter image description here

1 个答案:

答案 0 :(得分:0)

我的Web场所需的web.config文件中缺少机器密钥,因为我的托管环境使用3个名称服务器,因为它无法识别第二个请求以后的令牌。

从MS Docs:如果您在Web场中部署应用程序,则必须确保每个服务器上的配置文件为 Machine Key 的ValidationKey和DecryptionKey共享相同的值,这些值用于哈希和解密。这是必需的,因为您不能保证哪个服务器将处理连续的请求。

MS Docs: Webfarm Deployment Considerations