我正在尝试从我的 UWP 应用程序将有效负载发布到我们的后端系统。为此,我首先执行 GET 来获取 CSRF 令牌,然后将其添加到 POST 请求的标头中。发帖时,我仍然收到 403 Forbidden 错误。
我正在与“Insomnia”REST 客户端进行交叉测试,方法是执行单独的 GET 和 POST 请求,并将从 GET 获取的 CSRF 令牌提供给 POST 标头,并且工作正常。
获取令牌:
public async Task<string> GetCSRF()
{
using (HttpClient httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(
System.Text.Encoding.ASCII.GetBytes(
string.Format("{0}:{1}", userName.Text.ToUpper(), SAPpassword.Password))));
httpClient.DefaultRequestHeaders.Add("X-CSRF-TOKEN", "fetch");
HttpResponseMessage response = await httpClient.GetAsync(new Uri(_URI));
response.EnsureSuccessStatusCode();
if (response.Content == null)
return null;
String csrfToken = response.Headers.GetValues("X-CSRF-TOKEN").FirstOrDefault();
return csrfToken;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到了带有 csrf 令牌的以下标头:
public async Task<string> GetCSRF()
{
using (HttpClient httpClient …Run Code Online (Sandbox Code Playgroud)