【问题标题】:How to get logged user data in ASP.NET Core 5 MVC (.NET 5)?如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?
【发布时间】:2026-01-13 08:40:01
【问题描述】:

我目前正在开发一个 ASP.NET Core 5 MVC Web 项目,我使用默认创建的单用户帐户生成模板进行用户管理。我已经应用了迁移,并且按预期工作正常。我需要登录用户,在 .NET 5 单用户帐户模板 AccountController 中不可见。我在控制器外尝试了以下代码,它给出了null

public class UserService  
{
    private readonly IHttpContextAccessor _context;

    public UserService(IHttpContextAccessor context)
    {
        _context = context;
    }

    public string GetUser()
    {
       return _context.HttpContext.User?.Identity?.Name;
    }
}

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-core-mvc asp.net-identity .net-5


    【解决方案1】:

    您可以在此处查看示例代码 https://*.com/a/38751842/3728901(可能是 ASP.NET Core 1、2 或 3)

    专注于

    public class MyController : Microsoft.AspNetCore.Mvc.Controller
    
    var id = _userManager.GetUserId(User); // Get user id:
    

    或其他方式

    private UserManager<ApplicationUser> _userManager;
    
    //class constructor
    public MyController(UserManager<ApplicationUser> userManager)
    {
        _userManager = userManager;
    }
    

    var user = await _userManager.GetUserAsync(User);
    var email = user.Email;
    

    因为这个问题与 .NET 5 相关,所以我不认为这个问题是重复的。如果 .NET 5 有细微变化,请告诉我或修改小细节。

    【讨论】:

      最近更新 更多