这里的任何人都对 SAP OData 服务上的 X-CSRF-Token 行为有很好的了解,尤其是在与 Windows Auth (Kerberos) 身份验证一起使用时?
正在针对通过 Postman 进行测试的 GET/PUT 服务进行开发;X-CSRF-Token 检索发生在 PUT 调用之前,并且在提交回令牌时接受 PUT 调用(连同来自 SAP Portal 会话的 cookie)。
测试服务在 URL 上使用 HTTPS,例如: https ://sapqe0.clientname.com.au:44380/sap/opu/odata/SAP/Z_SERVICE_NAME_SRV/TestService ('参数')
从 .NET 客户端应用程序尝试时,GET 调用可以正常工作,包括令牌检索,但 PUT 会返回 403“CSRF 令牌验证失败”错误,尽管通过了看似有效的令牌。
使用 Fiddler 进行了追踪,请求/响应数据包看起来与 Postman 发送的相同。我看到的唯一区别是客户端应用程序在每个请求中收到不同的令牌,而 Postman 在连续调用中收到相同的令牌。可能暗示应用程序无法正确识别该会话?
C# 应用程序使用 Windows 身份 (DefaultCredentials) 并首先点击 SAP Portal 以获取 cookie 并附加到 OData 请求。
在这种情况下会导致 CSRF 令牌验证失败的任何线索?