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

ASP.NET Core 6 MVC登录成功后仍重定向至登录页问题咨询

问题原因及解决方案

核心问题:中间件顺序错误

ASP.NET Core的请求管道执行顺序是严格的,认证中间件必须在授权中间件之前运行。你的代码里把授权中间件放在了认证前面,导致授权逻辑执行时,用户还未完成身份认证,系统会判定用户未登录,进而重复重定向到登录页。

错误的顺序:

app.UseAuthorization();
app.UseAuthentication();

修正后的正确顺序

调整中间件顺序,让认证先执行,再做授权判断:

app.UseRouting();

// 先执行身份认证
app.UseAuthentication();
// 再执行授权校验
app.UseAuthorization();

// 自定义中间件放在授权之后
app.UseAuthenticationCheck();

其他需检查的细节

  • ReturnUrl安全处理:直接使用Redirect(login.ReturnUrl)存在开放重定向风险,建议改用LocalRedirect限制跳转范围为本站URL:
    if (result.Succeeded)
        return LocalRedirect(login.ReturnUrl ?? "/");
    
  • 用户身份验证:登录成功后,可以在目标Action中打印User.Identity.IsAuthenticated,确认用户身份是否已正确写入HttpContext.User。
  • Cookie配置确认:当前ConfigureApplicationCookie的配置无明显冲突,但生产环境需注意Cookie的Secure、SameSite属性是否符合部署环境要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:01:10