FileUplaod: требуемый токен защиты от подделки не был предоставлен или был недействительным - PullRequest
0 голосов
/ 09 марта 2011

Я пытаюсь загрузить файл в моем веб-приложении ASP.NET MVC 2, но я получил ошибку. Требуемый токен против подделки не был предоставлен или был недействительным.

Вот мой код aspx:

<% using (Html.BeginForm("ImportFile", "Suivi", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ %>
   <input type="file" id="fileUpload" name="fileUpload" />
   <input type="submit" value="Import" />
<% } %>

И в моем контроллере есть мой метод:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ImportFile(HttpPostedFileBase fileUpload)
    {
        if( fileUpload == null)
        {
            //Process files
        }
        return View();
    }

И есть стек ошибок:

A required anti-forgery token was not supplied or was invalid.
at System.Web.Mvc.ValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

Так, где моя проблема?

Приветствия

Skilpit

1 Ответ

1 голос
/ 09 марта 2011

Ваше действие контроллера украшено атрибутом [ValidateAntiForgeryToken], означающим, что он попытается проверить токен.Таким образом, вам нужно включить этот токен в форму с помощью помощника Html.AntiForgeryToken:

<% using (Html.BeginForm("ImportFile", "Suivi", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ %>
    <%= Html.AntiForgeryToken() %>
   <input type="file" id="fileUpload" name="fileUpload" />
   <input type="submit" value="Import" />
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...