首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于@Html.AntiForgeryToken()

关于@Html.AntiForgeryToken()
EN

Stack Overflow用户
提问于 2016-04-27 12:08:23
回答 2查看 351关注 0票数 1

所以我想知道antiForegryToken有多重要,因为它给我带来了一些问题。

我有一个类,我查看用户是否在角色“PremiumAnv ndare”(这是瑞典文中的PremiumUser ),如果不是,我会将它们重定向到"rolenotfound“。

代码语言:javascript
复制
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()来解决这个问题。

我是做错什么了还是可以移除标记?我重新建立了它一点,我知道它是为了抵御跨网站攻击,但我不相信这将是一个问题,因为我们正在制作一个移动应用程序。但请纠正我,教我这样我才能纠正这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 06:48:46

我通过改变

代码语言:javascript
复制
Response.Redirect("rolenotfound");
        return View();

代码语言:javascript
复制
 return PartialView("rolenotfound");

这并没有妨碍我使用防伪令牌,但是这个布局并不包括在这个例子中,但是这在我的项目中不会是一个问题。

票数 0
EN

Stack Overflow用户

发布于 2016-04-27 12:39:47

我认为,你的问题是,你没有结束你的回应后,重定向。Response.Redirect("rolenotfound");Response.Redirect("rolenotfound", true);的区别在于,第二个线程将中止线程并阻止执行return View();

我假设,虽然重定向是执行的,但return View();将执行并抛出System.Web.HttpException

在我看来,CSRF很常见(至少如果你有一个对攻击者有吸引力的应用程序),但是没有人会告诉你你是否需要这种保护--你必须自己决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36889374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档