M.R. Inc Ответов: 5

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


Привет ребята,

У меня есть небольшая проблема, и я ни за что на свете не могу понять, в чем же она заключается.

Код для index.cshtml:
using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()
    .........
    <input type="submit" value="Send" id="submitButn" class="btn btn-default" />
}


Код для HomeController.cs:
public ActionResult Index()
{
    return View();
}

[HttpPost()]
[ValidateAntiForgeryToken()]
public ActionResult Index(ContactUsModel servicemodel)
{
    if (ModelState.IsValid)
    {
        ............
    }
    return View(servicemodel);
}



Когда я запускаю сайт локально, он работает отлично, но когда я запускаю сайт на своем сервере (опубликованном), это результат

Server Error in '/' Application.

The required anti-forgery form field "__RequestVerificationToken" is not present.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.Mvc.HttpAntiForgeryException: The required anti-forgery form field "__RequestVerificationToken" is not present.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[HttpAntiForgeryException (0x80004005): The required anti-forgery form field "__RequestVerificationToken" is not present.]
   System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBase httpContext, IIdentity identity, AntiForgeryToken sessionToken, AntiForgeryToken fieldToken) +355566
   System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase httpContext) +163
   System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) +156
   System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__1e(AsyncCallback asyncCallback, Object asyncState) +787707
   System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +146
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag) +27
   System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__17(AsyncCallback asyncCallback, Object asyncState) +50
   System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +146
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
   System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) +775225
   System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +146
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +27
   System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +401
   System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__2(AsyncCallback asyncCallback, Object asyncState) +736758
   System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +146
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
   System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +27
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +343
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +12288259
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34209


Html на загруженной странице:
<form action="/" method="post">
<input name="__RequestVerificationToken" type="hidden" value="........." />  
.......
<input type="submit" value="Send" id="submitButn" class="btn btn-default" />
</form>


Все есть, но это просто не работает.

Любая помощь будет очень признательна.

Спасибо

Member 14115764

Ошибка сервера в приложении'/'.

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

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

Сведения об исключении: System.Web.Mvc.HttpAntiForgeryException: требуемое поле формы защиты от подделки "__RequestVerificationToken" отсутствует.

Ошибка Источника:

Необработанное исключение было сгенерировано во время выполнения текущего веб-запроса. Информацию о происхождении и местоположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

трассировка стека:


[HttpAntiForgeryException (0x80004005): требуемое поле формы защиты от подделки "__RequestVerificationToken" отсутствует.]
System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBase httpContext, IIdentity identity, AntiForgeryToken sessionToken, AntiForgeryToken fieldToken) +355566
System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase httpContext) +163
System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, фильтры IList`1, ActionDescriptor actionDescriptor) +156
Системы.Веб.В MVC.Асинхронность.&ЛТ;&ГТ;с__DisplayClass25.&ЛТ;begininvokeaction&ГТ;б__1е(объект asynccallback метод asynccallback, параметр asyncstate объекта) +787707
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(обратный вызов AsyncCallback, состояние объекта, тайм-аут Int32) +146
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag) +27
Системы.Веб.В MVC.&ЛТ;&ГТ;с__DisplayClass1d.&ЛТ;beginexecutecore&ГТ;Б__17(объект asynccallback метод asynccallback, параметр asyncstate объекта) +50
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(обратный вызов AsyncCallback, состояние объекта, тайм-аут Int32) +146
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
Системы.Веб.В MVC.Контроллер.BeginExecuteCore(обратный вызов AsyncCallback, состояние объекта) +775225
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(обратный вызов AsyncCallback, состояние объекта, тайм-аут Int32) +146
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +27
Системы.Веб.В MVC.Контроллер.BeginExecute(RequestContext requestContext, AsyncCallback callback, состояние объекта) +401
Системы.Веб.В MVC.&ЛТ;&ГТ;с__DisplayClass8.&ЛТ;beginprocessrequest&ГТ;Б__2(Объект asynccallback метод asynccallback, объект параметр asyncstate) +736758
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(обратный вызов AsyncCallback, состояние объекта, тайм-аут Int32) +146
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate`1 endDelegate, Object tag, Int32 timeout) +166
Системы.Веб.В MVC.Асинхронность.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +27
Системы.Веб.В MVC.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, состояние объекта) +343
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Выполнить() +12288259
Системы.Веб.Класса HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

Информация о версии: Microsoft .NET Framework версия:4.0.30319; ASP.NET версия:4.

5 Ответов

Рейтинг:
4

M.R. Inc

Привет,

Я думал, что действительно обновлю это.

Я решил эту проблему, переустановив свой сервер, возникла ошибка с первоначальной настройкой, так как сервер, на котором раньше работал сайт, работал отлично.


Ошибка, по-видимому, отличается от других.

Извините, если это не поможет.


Рейтинг:
2

Alazar 9860585

вы пробовали связаться с опубликованным приложением, используя https:// вместо http?
У меня была похожая ошибка, но при использовании https://, похоже, она была решена.


Рейтинг:
2

mohamad bahmani

Привет У меня была такая же проблема, и я решил ее, выполнив следующие изменения:

перед изменением:

@using (Html.BeginForm("Login", "Account", FormMethod.Post))
    {
        Html.AntiForgeryToken();
         .
         .
         .
    }

после изменения:
@using (Html.BeginForm("Login", "Account", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
         .
         .
         .
    }


я надеюсь, что это было полезно!


Рейтинг:
2

Suraj Sahoo | Coding Passion

http://benohead.com/asp-net-mvc-the-required-anti-forgery-form-field-__requestverificationtoken-is-not-present/[^]

Пожалуйста, проверьте эту статью, может быть, это вам все равно поможет..


Рейтинг:
0

a1771550@HK

Привет приятель,

Я только что столкнулся с той же проблемой, что и вы. После нескольких часов отладки я наконец понял корень проблемы, которая вызвана функцией javascript при загрузке страницы. Эта функция предназначалась для удаления всех входных данных, генерируемых chrome, путем удаления всех входных значений при загрузке windows. Таким образом, решение простое: просто укажите, какое значение поля ввода должно быть удалено, и таким образом сохраните скрытое входное значение.

Надеюсь, что эта часть информации будет полезна для вас.

Кевин


Shivank Sharma

Ты настоящий MVP человек!! Я узнал настоящую причину, по которой я получал это исключение только из-за этого ответа. Огромное спасибо!!