2016-12-21 5 views
0

Я пытался использовать атрибут [ValidateAntiForgeryToken] до моего действия. Если я перейду к этому действию без входа в систему, он работает в настоящее время. но, если я вхожу в систему через ajax перед вызовом этого действия, получите эту ошибку.Предоставленный токен анти-подделки предназначен для другого пользователя, основанного на требованиях, чем у текущего пользователя.

Предоставленный токен анти-подделки предназначен для другого пользователя на основе заявлений , чем у текущего пользователя.

Я использую в своей форме для входа @Html.AntiForgeryToken(), которые существуют внутри макета веб-сайта. и с этой должности в up-действие есть @Html.AntiForgeryToken(). Я пытаюсь использовать Salt, но получаю ошибку . Я использую в действии атрибут [ValidateAntiForgeryToken].

[ValidateAntiForgeryToken] 
    [ValidateInput(true)] 
    public ActionResult PrePaymentBank(CharterParam charterParam, string MobileForSMS){} 

Что такое проблема? enter image description here

+0

AFAIK, AFT различные претензии ошибки часто связанной с методом действия контроллера, пожалуйста, напишите код контроллера, который возвращается вид, как показано на рисунке. –

+0

@TetsuyaYamamoto Эта форма существует внутри макета веб-сайта. Я использую этот модальный для входа пользователя через Ajax и после входа в систему отправьте другую форму в действие PrePaymentBank – programmer138200

+1

Вы имеете в виду поле AFT, размещенное внутри страницы макета или частичного просмотра? Если он размещен на странице макета, он потенциально возвращает исключение AFT во время запроса страницы с использованием того же макета, поскольку старый AFT для не прошедшего проверку подлинности пользователя все еще на месте, пока пользователь, прошедший проверку подлинности, использует его. –

ответ

1

Я получил это сегодня и исправление было заменить [ValidateAntiForgeryToken] с [AutoValidateAntiforgeryToken]

.NET Core 2 изменил процесс, в котором вы не можете подавить пользователя. К сожалению, если вы не используете .NET сердечника 2.

https://github.com/aspnet/Antiforgery/blob/dev/src/Microsoft.AspNetCore.Antiforgery/Internal/DefaultAntiforgeryTokenGenerator.cs