所以我想知道antiForegryToken有多重要,因为它给我带来了一些问题。
我有一个类,我查看用户是否在角色“PremiumAnv ndare”(这是瑞典文中的PremiumUser ),如果不是,我会将它们重定向到"rolenotfound“。
public ActionResult Create()
{
if (User.IsInRole("PremiumAnvändare"))
{
ViewBag.SammanhangsID = new SelectList(db.Sammanhangs, "SammanhangsID", "Namn");
return View();
}
Response.Redirect("rolenotfound");
return View();
} 但是当用户被重定向到滚动时,我会得到错误。
“System.Web.HttpException”类型的异常发生在System.Web.dll中,但未在用户代码中处理 发送HTTP报头后,服务器无法添加报头。
通过删除@Html.AntiForgeryToken()来解决这个问题。

我是做错什么了还是可以移除标记?我重新建立了它一点,我知道它是为了抵御跨网站攻击,但我不相信这将是一个问题,因为我们正在制作一个移动应用程序。但请纠正我,教我这样我才能纠正这一点。
发布于 2016-04-28 06:48:46
我通过改变
Response.Redirect("rolenotfound");
return View();至
return PartialView("rolenotfound");这并没有妨碍我使用防伪令牌,但是这个布局并不包括在这个例子中,但是这在我的项目中不会是一个问题。
发布于 2016-04-27 12:39:47
我认为,你的问题是,你没有结束你的回应后,重定向。Response.Redirect("rolenotfound");和Response.Redirect("rolenotfound", true);的区别在于,第二个线程将中止线程并阻止执行return View();。
我假设,虽然重定向是执行的,但return View();将执行并抛出System.Web.HttpException。
在我看来,CSRF很常见(至少如果你有一个对攻击者有吸引力的应用程序),但是没有人会告诉你你是否需要这种保护--你必须自己决定。
https://stackoverflow.com/questions/36889374
复制相似问题