2011-03-09 14 views
0

私のASP.NET MVC 2 Webアプリケーションでアップロードファイルを作成しようとしていますが、エラーが発生しました。 必要な偽造防止トークンが提供されていないか、無効です。FileUplaod:必要な偽造トークンが提供されていないか、無効です

は私の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

お使いのコントローラのアクションは、それがトークンを検証しようとすることを意味[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" /> 
<% } %> 
関連する問題