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

Asp.Net Core Identity中RedirectToAction跳转returnUrl报404问题

问题根因

重定向失效是因为错误使用了RedirectToAction方法:

  • RedirectToAction的设计用途是跳转到站内指定的控制器动作,入参需要传入Action名称、控制器名称等参数,框架会基于当前路由上下文拼接生成目标地址
  • 你直接把URL路径(/、/Admin)作为Action名传入,框架会默认把这些值当成当前Account控制器下的Action名拼接,最终生成/Account/%2F、/Account/%2FAdmin这类不存在的地址,触发404错误。
修复方法

登录成功后的重定向逻辑改用Redirect方法实现,该方法支持直接传入目标URL路径完成跳转:

if (result.Succeeded) {
  return Redirect(returnUrl ?? "/");
}
安全优化

直接使用用户传入的returnUrl存在开放重定向攻击风险,恶意用户可以构造参数把登录后的用户诱导到钓鱼站点,建议跳转前用内置方法校验地址是否属于本站:

if (result.Succeeded) {
  if (Url.IsLocalUrl(returnUrl))
  {
    return Redirect(returnUrl);
  }
  // 非本站地址默认跳转至首页
  return RedirectToAction("Index", "Home");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:24:24