如何在 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 MVC 5、ASP.NET Core MVC 5 有啥区别?