如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?

Posted

技术标签:

【中文标题】如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?【英文标题】:How to get logged user data in ASP.NET Core 5 MVC (.NET 5)? 【发布时间】:2021-05-30 07:21:48 【问题描述】:

我目前正在开发一个 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;
    

【问题讨论】:

【参考方案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 有细微变化,请告诉我或修改小细节。

【讨论】:

以上是关于如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp.Net Core Mvc 5.0 中将 sql 数据库与 ado.net 连接?

如何确定在 C# ASP.NET CORE MVC 5.0 中选择了哪个单选按钮

asp.net core 系列 5 MVC框架路由(上)

ASP.NET MVC 5、ASP.NET Core MVC 5 有啥区别?

如何将项目引用添加到 ASP.NET Core 1.0 MVC 项目

[七] ASP.NET Core MVC 的设计模式