Asp.net mvc 5 所需的防伪cookie“__RequestVerificationToken“;他不在场。I';我没有主意了

Asp.net mvc 5 所需的防伪cookie“__RequestVerificationToken“;他不在场。I';我没有主意了,asp.net-mvc-5,Asp.net Mvc 5,我正在MVC5中开发一个后端,以便客户端在其网站中进行更新。但是我遇到了这个错误: 这是具有AntiForgeryToken方法的控制器 [ValidateAntiForgeryToken] [Authorize(Roles = "Admin")] [System.web.Mvc.AuthorizeSectionccess(sectionname = "IT")] public ActionResult Create() { return View(); } [ValidateAnti

我正在MVC5中开发一个后端,以便客户端在其网站中进行更新。但是我遇到了这个错误:

这是具有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>
}
@使用(Html.BeginForm(“创建”、“ConteudosPageController”、FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.TextAreaFor(model=>model.ConteudoStandard)
文本:
@DisplayFor(model=>model.ConteudoStandard)
}
我在两端都使用了AntiForgeryToken,但仍然会出错。我知道有数千个这样的问题,但我已经尝试了3天的所有建议的解决方案,没有任何结果


编辑:我忘了提到视图将调用tinyMCE编辑器的控制器和模型

这可能不是答案,但是,您可能误解了防伪令牌的作用以及在哪里使用它

首先,当您在视图中使用@Html.AntiforgeryToken时,它会在会话或cookie中注册某些内容(不记得是哪个)

validate anti-forgery token属性查找该令牌,并将其与隐藏字段中传入的令牌相匹配。如果不匹配,那么post请求很可能不是来自您的视图


需要注意的是,这需要请求上的body参数来发送令牌。你不会在没有尸体的情况下得到这个。Get请求没有正文,因此不需要validateantiforgerytoken属性。

感谢您的回复。我知道防伪技术的作用、方法以及在何处使用。主要问题是实现已经完成(我认为是正确的方式),如果我没有弄乱“核心”代码,为什么它不授权令牌?您是否尝试过从Create()方法中删除validateantifirgerytoken属性?这看起来像是一个GET,它不会有一个防伪令牌来验证你是对的,这是一个GET,我在那里有一个验证令牌。即使我有错误。我现在在没有防伪令牌的情况下工作,直到我完成剩下的工作。如果我找到一个解决方案,我会发布它。再次感谢你,因为我之前说过你是对的,get方法不需要验证令牌。我现在正在使用System.Web.Helpers.AntiForgery.Validate();作为临时解决办法。