我在尝试了解如何处理AntiForgeryToken时遇到问题。
我有一个张贴到控制器的表格。
该表单包含@Html.AntiForgeryToken()
标签,而我的控制器具有[ValidateHeaderAntiForgeryToken]
属性。一切正常,除非我尝试从不存在的页面发布。
在这个特定的项目中,每当用户尝试访问一个不存在的页面时,用户仍然会转到该页面的url,但它会显示404页面内容和404状态代码。
这是我遇到的问题->所有页面(包括404页面本身)均正常运行,并且控制器正确验证了防伪令牌。但是,如果用户转到一个不存在的页面,则令牌不匹配,并且我收到以下消息:
The anti-forgery cookie token and form field token do not match.
我可以看到2个选项:
1-从这些页面中删除表格;
2-通过删除属性来跳过验证,并在存在页面时调用AntiForgery.Validate()
。当我进入这些页面之一时,基本上删除验证。 -安全性问题,因此不热衷于此。
还有其他建议吗?我想念什么吗?