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

如何为ASP.NET Core Empty Template添加User对象获取Windows登录用户

为ASP.NET Core空项目添加Windows用户识别功能

要在ASP.NET Core空项目中获取当前登录的Windows用户,只需启用Windows身份验证并配置必要的中间件,无需复杂的用户管理功能,具体步骤如下:

1. 启用Windows身份验证

修改项目的.csproj文件,添加以下配置,确保启用Windows身份验证并禁用匿名身份验证:

<PropertyGroup>
  <WindowsAuthentication>true</WindowsAuthentication>
  <AnonymousAuthentication>false</AnonymousAuthentication>
</PropertyGroup>

如果你使用Visual Studio,也可以右键项目→属性→调试→勾选"启用Windows身份验证",同时取消"启用匿名身份验证",效果和手动修改配置文件一致。

2. 配置身份验证中间件

在Program.cs中添加身份验证和授权中间件的配置:

var builder = WebApplication.CreateBuilder(args);

// 添加Windows身份验证服务
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
    .AddNegotiate();

// 添加授权服务
builder.Services.AddAuthorization();

var app = builder.Build();

// 启用身份验证中间件(必须在UseAuthorization之前)
app.UseAuthentication();
// 启用授权中间件
app.UseAuthorization();

// 示例端点:返回当前登录用户信息
app.MapGet("/", (HttpContext context) =>
{
    var userName = context.User.Identity?.Name;
    return $"当前登录的Windows用户:{userName}";
}).RequireAuthorization();

app.Run();

3. 获取User对象

配置完成后,你可以在任意授权过的端点、控制器或Razor页面中通过HttpContext.User访问当前登录用户的信息:

  • 在端点委托中:直接通过context.User获取
  • 在控制器中:通过this.User或HttpContext.User获取
  • 在Razor页面(如果添加了Razor支持):使用@User直接在视图中显示,比如@User.Identity.Name

这样配置后,空项目就能自动识别当前登录的Windows用户,无需额外的用户管理模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:33:21