ASP.NET Core 6 MVC如何获取Windows域用户名在视图中展示
ASP.NET Core 6 MVC 极简获取Windows域用户名方案
不需要搭建完整身份认证体系,补全缺失的配置即可直接在视图中读取域用户名,总配置量不超过5行:
- 补全
Program.cs的服务注册逻辑
你目前只添加了认证授权中间件,没有提前注册对应认证服务,在var app = builder.Build();代码前追加以下内容:using Microsoft.AspNetCore.Authentication.Negotiate; builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme) .AddNegotiate(); builder.Services.AddAuthorization(); - 确认中间件顺序
你已添加的app.UseAuthentication();、app.UseAuthorization();必须放在路由映射、端点配置代码(比如app.MapControllerRoute())之前,顺序错误会导致认证逻辑不执行。 - 校验
launchSettings.json配置
不要只在iisSettings根节点配置认证开关,要确认iisSettings.iisExpress节点下同样设置"windowsAuthentication": true、"anonymousAuthentication": false,本地IIS Express调试才会生效。
配置完成后不需要额外写控制器传值逻辑,直接在视图中用你熟悉的代码就能拿到域用户名:
@User.Identity.Name
返回值格式为域名\登录用户名,直接渲染展示即可。
常见踩坑提示:如果部署时用Kestrel自托管而非IIS托管,需要在Kestrel的端点配置中显式开启Negotiate认证,本地调试用IIS Express不需要额外配置。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

