Токены защиты от подделки ASP.NET MVC ⇐ Jquery
Токены защиты от подделки ASP.NET MVC
У меня есть приложение asp.net MVC, в котором также использовалась загрузочная загрузка, телерик Kendo UI (для MVC). Контроллеры имеют атрибут [ValidateAntiForgeryToken], а на страницах Razor (.cshtml) используется следующая реализация:
@using (Ajax.BeginForm("AddComments", "Comments", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "closeCommentsModal" })) { @Html.AntiForgeryToken() ----- ----- Закрыть Сохранить изменения } Кнопка сохранения выполняет вызов ajax, как показано ниже
function saveField(поле, значение) { $.ajax({ тип: "ПОСТ", URL: $("#SAVEFIELD").val(), данные: {сессия: $("#SESSION").val(), поле: поле, значение: значение }, contentType: "application/x-www-form-urlencoded; charset=utf-8", Тип данных: «JSON» }); } Это вызывает метод контроллера MVC, который реализован, как показано ниже:
[HttpPost] [ВалидатеАнтиФоржериТокен] [ВалидатеИнпут(ложь)] public ActionResult SaveSessionField (сеанс Guid, строковое поле, строковое значение) Функциональность вся работает, но недавно мы обновляемся до bootstrap 5.0, и теперь нам нужно изменить функцию jquery для передачи токена защиты от фальсификации для получения ответа от контроллера MVC. Модифицированная функция jquery выглядит следующим образом:
function saveField(поле, значение) { var token = $("[name='__RequestVerificationToken']").val(); $.ajax({ тип: "ПОСТ", URL: $("#SAVEFIELD").val(), данные: {сессия: $("#SESSION").val(), поле: поле, значение: значение, '__RequestVerificationToken': токен }, contentType: "application/x-www-form-urlencoded; charset=utf-8", Тип данных: «JSON» }); } Мой вопрос: почему обновление начальной загрузки 5 требует передачи токена защиты от фальсификации отдельно в функции jquery? Почему он работал в более старой версии начальной загрузки без передачи токена защиты от фальсификации? Нужно ли нам также обновлять версию ajax, чтобы избежать отдельной передачи токена в функцию jquery? У меня много функций jquery, поэтому я не хочу изменять все функции для передачи значения токена. Есть ли у нас глобальный способ управления токенами в проекте ASP.NET MVC, чтобы мы могли избежать изменения функций JavaScript?
У меня есть приложение asp.net MVC, в котором также использовалась загрузочная загрузка, телерик Kendo UI (для MVC). Контроллеры имеют атрибут [ValidateAntiForgeryToken], а на страницах Razor (.cshtml) используется следующая реализация:
@using (Ajax.BeginForm("AddComments", "Comments", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "closeCommentsModal" })) { @Html.AntiForgeryToken() ----- ----- Закрыть Сохранить изменения } Кнопка сохранения выполняет вызов ajax, как показано ниже
function saveField(поле, значение) { $.ajax({ тип: "ПОСТ", URL: $("#SAVEFIELD").val(), данные: {сессия: $("#SESSION").val(), поле: поле, значение: значение }, contentType: "application/x-www-form-urlencoded; charset=utf-8", Тип данных: «JSON» }); } Это вызывает метод контроллера MVC, который реализован, как показано ниже:
[HttpPost] [ВалидатеАнтиФоржериТокен] [ВалидатеИнпут(ложь)] public ActionResult SaveSessionField (сеанс Guid, строковое поле, строковое значение) Функциональность вся работает, но недавно мы обновляемся до bootstrap 5.0, и теперь нам нужно изменить функцию jquery для передачи токена защиты от фальсификации для получения ответа от контроллера MVC. Модифицированная функция jquery выглядит следующим образом:
function saveField(поле, значение) { var token = $("[name='__RequestVerificationToken']").val(); $.ajax({ тип: "ПОСТ", URL: $("#SAVEFIELD").val(), данные: {сессия: $("#SESSION").val(), поле: поле, значение: значение, '__RequestVerificationToken': токен }, contentType: "application/x-www-form-urlencoded; charset=utf-8", Тип данных: «JSON» }); } Мой вопрос: почему обновление начальной загрузки 5 требует передачи токена защиты от фальсификации отдельно в функции jquery? Почему он работал в более старой версии начальной загрузки без передачи токена защиты от фальсификации? Нужно ли нам также обновлять версию ajax, чтобы избежать отдельной передачи токена в функцию jquery? У меня много функций jquery, поэтому я не хочу изменять все функции для передачи значения токена. Есть ли у нас глобальный способ управления токенами в проекте ASP.NET MVC, чтобы мы могли избежать изменения функций JavaScript?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Требуемое значение заголовка защиты от подделки «RequestVerificationToken» отсутствует.
Anonymous » » в форуме C# - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-