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

ASP.NET Core 5 MVC 自定义CultureProvider中httpContext.User未认证及服务调用问题

问题2:HttpContext.User始终未认证的解决方案

这个问题是中间件执行顺序错误导致的:默认情况下RequestLocalization中间件执行在Authentication中间件之前,你的Provider运行时身份认证逻辑还没执行,自然拿不到已认证的用户信息。
只需要调整Configure方法(或.NET 6+顶层语句)中的中间件顺序,把身份认证、授权中间件放在请求本地化中间件之前即可:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 其余前面的中间件(异常处理、静态文件等)
    // ...
    
    // 先执行认证、授权
    app.UseAuthentication();
    app.UseAuthorization();
    
    // 再执行请求本地化
    app.UseRequestLocalization();
    
    // 后面的路由、端点映射等
    // ...
    app.UseRouting();
    app.UseEndpoints(endpoints => { ... });
}

调整顺序后,等到你的自定义Provider运行时,身份认证已经完成,HttpContext.User就能拿到正确的已认证信息和对应的语言Claims。


内容的提问来源于stack exchange,提问作者gt.guybrush

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:51:02