2009-11-23 2 views
2

Возможно ли использовать атрибут ValidateAntiForgeryToken при действии контроллера, когда запрос поступает из Ajax.ActionLink (используя Http Method Post?). Альтернатива, похоже, заключается в том, чтобы вручную запустить запрос JQuery Ajax, но мне любопытно, есть ли способ в рамках MVC Ajax.Использование ValidateAntiForgeryToken с Ajax.ActionLink

ответ

2

Я не видел запеченный путь. Вы должны получить токен в данные, которые появляются в POST. Идентификатор маркера antiforgery (или имя, которое я не помню) каждый раз один и тот же, но вы должны быть очень осторожны и убедитесь, что маркер анти-забывания, который вы используете, является самым последним, предоставленным клиенту, который может оказаться сложным в приложении AJAX.

+0

Я собираюсь отметить это как правильно - с одной оговоркой. Символ анти-подделки уникален для сеанса, который не запрашивается. Я обнаружил, что выпуск нескольких сообщений ajax с тем же самым токеном анти-подделки будет успешным. Моим решением было использовать почтовый вызов JQuery с использованием метода для извлечения токена анти-подделки из формы. Я также обнаружил, что на странице с несколькими формами (и, следовательно, несколькими уникальными токенами для подделки) я мог бы подавать с помощью любого из доступных токенов для подделки - это, похоже, не имело значения. –

+0

Спасибо за головы. Я не использую Session, поэтому я считаю, что именно поэтому я испытал другой токен по каждому запросу. –

+0

@Michael Gattuso Почему бы вам не опубликовать свой код? –

Смежные вопросы