Как избежать вызова AntiForgery.Validate () при вызове из HttpClient или Postman? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приложение mvc webapi, и из пользовательского интерфейса он взял параметр для вызова метода HTTPPOST.

внутри метода HTTPPOST AntiForgery.Validate();, который в основном проверяет значение, которое устанавливается из пользовательского интерфейса после входа в систему.

js-код -

function RequestVerificationToken(data) {
    var form = $('#__AjaxAntiForgeryForm');
    var token = $('input[name="__RequestVerificationToken"]', form).val();
    data.__RequestVerificationToken = token;
    return data;
}

Код контроллера -

[HttpPost]
        [SwaggerResponse(HttpStatusCode.OK, Type = typeof(DeviceApp))]
        [SwaggerResponse(HttpStatusCode.BadRequest, Type = typeof(Error))]
        [SwaggerResponse(HttpStatusCode.InternalServerError, Type=typeof(Error))]
        public async Task<HttpResponseMessage> CreateAsync(DeviceApp device)
        {
            AntiForgery.Validate();

, но когда я отправляю запрос с помощью Postman или httpclient, он не может AntiForgery.Validate(); с ошибкой ниже -

"Message": "An error has occurred.",
"ExceptionMessage": "The required anti-forgery cookie \"__RequestVerificationToken\" is not present.",
"ExceptionType": "System.Web.Mvc.HttpAntiForgeryException",
...