2017-07-19 103 views
1

我正在MVC 5中開發後端,以便客戶端在其網站上進行更新。不過我碰到這個錯誤有:所需的防僞cookie「__RequestVerificationToken」不存在。我出於想法

Error Image 這是與AntiForgeryToken

[ValidateAntiForgeryToken] 
[Authorize(Roles = "Admin")] 
[System.web.Mvc.AuthorizeSectionccess(sectionname = "IT")] 
public ActionResult Create() 
{ 
    return View(); 
} 
[ValidateAntiForgeryToken] 
[Authorize(Roles = "Admin")] 
[System.web.Mvc.AuthorizeSectionccess(sectionname = "IT")] 
[System.web.Mvc.AuthorizePermitionAccess(PermissonType = "Add")] 
[HttpPost] 
public ActionResult Create(Welcome_conteudoPage model) 
{ 
    DB.Welcome_conteudoPage.Add(model); 
    DB.SaveChanges(); 

    return Redirect("Index"); 
    return View(model); 
} 

方法的控制器和本所認爲

@using (Html.BeginForm("Create", "ConteudosPageController", FormMethod.Post)) 
{ 
    @Html.AntiForgeryToken() 
    <div> 
     @Html.TextAreaFor(model => model.ConteudoStandard) 
    </div> 
    <div> 
     <input type="submit" value="Inserir" class="btn btn-primary"/> 
    </div> 
    <div> 
     Texto: 
     @Html.DisplayFor(model => model.ConteudoStandard) 
    </div> 
} 

我使用AntiForgeryToken兩個結束並仍然會出現該錯誤。我知道有成千上萬個這樣的問題,但我已經嘗試了所有提議的解決方案3天,沒有任何結果。

編輯:我忘了提,視圖會調用控制器和模型TinyMCE的編輯器

回答

0

它可能不是答案,但是,你可能誤會了防僞造令牌不和,其中使用它。首先,當您在視圖中使用@ Html.AntiforgeryToken時,它會在會話或cookie中記錄某些內容(無法記住哪些內容)。

驗證防僞標記屬性查找該標記並將其與隱藏字段中的傳入標記進行匹配。如果它不匹配,那麼很可能發佈的請求並不是來自您的觀點。

需要注意的是,這需要在令牌中發送請求的身體參數。對於沒有機構的請求,你不會有這種情況。 Get請求沒有主體,因此不需要validateantiforgerytoken屬性。

+0

感謝您的回覆。我知道什麼是反僞造,手段和在哪裏使用它。主要問題是執行完成(並且以我認爲正確的方式),如果我沒有搞亂「核心」代碼,爲什麼它不授權令牌? –

+0

您是否嘗試從Create()方法中刪除validateantifirgerytoken屬性?這看起來像一個GET,它不會有一個反僞造令牌來驗證 – Slicksim

+0

你是對的,那是一個get,我有驗證令牌在那裏。即使我有錯誤。我現在沒有反僞造令牌,直到我完成其餘的工作。如果我找到解決方案,我會發布它。再次感謝你 –

相關問題