You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core角色认证加[ValidateAntiForgeryToken]后返回HTTP 400问题排查

你的判断是正确的,该400错误确实由RedirectToAction("Cabinet", "Cabinet")触发。

错误原因

  • [ValidateAntiForgeryToken] 是ASP.NET Core内置的CSRF(跨站请求伪造)防护特性,默认要求请求中携带与用户身份对应的防伪造令牌,令牌通常由前端页面对应表单生成,随POST等修改类请求提交。
  • RedirectToAction 会返回302重定向响应,浏览器收到后会自动发起GET请求访问目标地址。GET请求本身不会携带CSRF令牌,且你给标注了[HttpGet]的Cabinet方法加上了[ValidateAntiForgeryToken],触发令牌校验失败,返回400错误。
  • 额外说明:GET请求本身是幂等请求,不会修改服务器侧资源,本身不需要做CSRF防护,[ValidateAntiForgeryToken] 不应该标注在仅接受GET请求的Action上。

修复方案

直接删除Cabinet方法上的[ValidateAntiForgeryToken]特性即可,该场景下不需要对GET请求做CSRF校验。
如果确实有特殊需求需要对该接口做CSRF防护,需要把接口请求类型改为POST,同时调整跳转逻辑为返回带CSRF令牌的自动提交表单,而非直接重定向,不过该方案仅适合特殊场景,常规业务不推荐使用。

内容的提问来源于stack exchange,提问作者Slepoyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:03:02