.Net Core ValidateAntiForgeryToken 抛出 web api 400 错误

.Net Core ValidateAntiForgeryToken throwing web api 400 error

Visual Studio 2017 with Web Api using .net Core 1.1 我正在使用,但收到 400 错误请求错误。

各方面都出现错误:

  1. Angular http
  2. 提琴手
  3. 邮递员
  4. SoapUI
  5. 招摇

ASP.NET Web API POST 请求

上的“400 错误请求”
[HttpPut]
//[ValidateAntiForgeryToken]
public IActionResult Put([FromBody]VeteranInteraction sessionTracker)
{ //.... } 

为什么会这样?

ValidateAntiForgeryToken 是问题所在,如果我将其注释掉就可以了。

您需要在每个请求上发送 AntiForgery 令牌作为 cookie 或 http header。

参考documentation here. They have a section如何配置angular js。

您必须在每次请求时发送防伪令牌

 var arr = { City: 'Tehran', Age: 25 };
    $.ajax({
        url: "@Url.Action("SaveAccess", "Access")",
        type: 'POST',
        data: JSON.stringify(arr),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        async: false,
        beforeSend: function (request) {
            request.setRequestHeader("RequestVerificationToken", $("[name='__RequestVerificationToken']").val());
        },
        success: function (msg) {
            alert(msg);
        }
    });