后续 REST API 请求出现 401 Unauthorized 错误

401 Unauthorized error on subsequent REST API requests

在第一次成功响应 200 Ok 后,后续 REST API 请求 出现 401 Unauthorized 错误。请参阅下面的重现步骤。

重现步骤:

  1. 验证并获取授权令牌 - 成功

  2. 首先提交 API 请求 - 成功

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

注意:当我在本地调试或在 Azure 上部署时,这工作正常。但是,我在我的一个托管环境中收到 401 Unauthorized 。并且支持人员付出了艰辛的努力,但未能解决此问题。

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

Update-1: 下面是我的域 (401) 和 azure (200 ok) 并排放置的响应。我看到 Azure 在 cookie 中另外发送 ARRAffinity 和 ARRAffinitySameSite。希望此信息可能有所帮助。

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

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

MS Docs: Webfarm Deployment Considerations