Это может быть глупый вопрос, но я об этом некоторое время думал об этом. Возможно, я забыл некоторые подробности о том, как все это работает, и, конечно же, я не тестировал этот сценарий.MVC AntiForgeryToken в вызове ajax и методе IsAjaxRequest()
Представьте себе простой пример JsonResult действия в проекте ASP.NET MVC, как это:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult greetingMsg(string name, string timeOfDay)
{
if (!Request.IsAjaxRequest()) return null;
return Json(new { result = $"Hello {name}, good {timeOfDay}" });
}
Конечно, мы должны отправить AntiForgeryToken в вызове Ajax, или этот метод не будет выполняться.
Этот метод JsonResult можно вызывать из любого места в Интернете, но он не удастся из-за того, что AntiForgeryToken не соответствует, верно? Хорошо, если мы выведем атрибут [ValidateAntiForgeryToken], будет ли выполняться этот метод при вызове другим сайтом в сети с помощью Ajax или вызовы Ajax могут быть успешными только при вызове в пределах одного и того же Интернета?
Спасибо.