.Net Core ValidateAntiForgeryToken抛出web api 400错误

7 c# antiforgerytoken .net-core asp.net-core asp.net-core-webapi

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

每种方式都出现错误:

  1. Angular http
  2. 提琴手
  3. 邮差
  4. 了SoapUI
  5. 昂首阔步

POST请求中的ASP.NET Web API"400错误请求"

[HttpPut]
//[ValidateAntiForgeryToken]
public IActionResult Put([FromBody]VeteranInteraction sessionTracker)
{ //.... } 
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

ValidateAntiForgeryToken 是问题,如果我发表评论它是有效的.

Ami*_*eza 9

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

 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);
        }
    });
Run Code Online (Sandbox Code Playgroud)


gld*_*ael 2

您需要在每个请求上发送 AntiForgery 令牌,并将其作为 cookie 或 http 标头进行验证。

请参阅此处的文档。他们有一介绍如何配置 Angular js 来做到这一点。