токен защиты от подделки с использованием остальных клиентов

У меня есть сайт mvc, и я использую ValidateAntiForgeryToken в некоторых моих методах действий. В представлении у меня есть следующая строка кода:

 @Html.AntiForgeryToken()

Проблема начинается, когда я пытаюсь вызвать функцию с помощью клиента postman rest. Я получаю сообщение об ошибке:

Отсутствует обязательное поле формы защиты от подделки "__RequestVerificationToken".

Я попытался отправить файлы cookie, необходимые как таковые: Cookie: ASP.NET_SessionId=hgpv04mkuldbex45im3gco; __RequestVerificationToken=2Of_03RzDacR4Hf-sWS3f_G0kZs1

Но все равно получаю ту же ошибку. Кто-нибудь знает, что, черт возьми, мне не хватает, пожалуйста?


person mashta gidi    schedule 23.02.2017    source источник
comment
Вы действительно хотите использовать токен защиты от подделки? Если не просто удалить атрибут [ValidateAntiForgeryToken] из контроллера...   -  person BillRuhl    schedule 23.02.2017
comment
можешь добавить свой взгляд?   -  person Usman    schedule 23.02.2017
comment
Вы взаимодействуете с действием веб-API? Веб-API не поддерживает файлы cookie (поскольку он на основе REST, а REST не поддерживает файлы cookie). _RequestVerificationToken должен быть указан в заголовке или в теле запроса.   -  person Chris Pratt    schedule 23.02.2017


Ответы (1)


это две части

Часть 1 — добавить в cshtml

@Html.AntiForgeryToken()

Часть 2 - добавить это к методу

[HttpPost]  
[ValidateAntiForgeryToken]  
public ActionResult CreateSomething(Something model)  
{
  if (ModelState.IsValid)  
  {
    //your logic 
  }
  return View(ModelName);
}
person KenL    schedule 23.02.2017
comment
часть 3, если вы используете webApi -› stackoverflow.com/questions/ 11476883/ - person KenL; 23.02.2017