所需的防伪cookie“__RequestVerificationToken”不存在。我没有想法

时间:2017-07-19 14:14:29

标签: asp.net-mvc-5

我正在为MVC 5开发一个后端,以便客户在他们的网站上进行更新。但是我遇到了这个错误:

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编辑器的控制器和模型

1 个答案:

答案 0 :(得分:1)

这可能不是答案,但是,您可能误解了防伪标记的作用以及使用位置。

首先,当您在视图中使用@ Html.AntiforgeryToken时,它会在会话或cookie中注册某些内容(无法记住哪些内容)。

validate anti伪造令牌属性查找该令牌并将其与隐藏字段中传入的令牌进行匹配。如果不匹配,那么很可能邮寄请求并非来自您的观点。

需要注意的是,这需要请求中的body参数才能发送令牌。在没有正文的请求中你不会有这个。 Get请求没有正文,因此不需要validateantiforgerytoken属性。