我需要在 Controller 的构造函数中使用一些当前用户的数据来初始化存储库,但看起来不可能获得当前用户的数据,因为所有对象都可以提供有关用户的任何数据(例如 HttpContext
或 User
) 在构造函数的区域中可以为空。我怎样才能在构造函数中获取所需的数据或以任何其他方式使用用户数据初始化存储库?
最佳答案
您可以在构造函数中使用IHttpContextAccessor
访问HttpContext
;
public class HomeController : Controller
{
public HomeController(IHttpContextAccessor httpContextAccessor)
{
var httpContext = httpContextAccessor.HttpContext;
}
}
如果您使用的是 ASP.NET Core 1.x,请在启动类的配置方法中注册 IHttpContextAccessor
,对于 ASP.NET Core 2.0,我认为这不是必需的。
services.TryAddScoped<IHttpContextAccessor, HttpContextAccessor>();
关于c# - 如何在 Controller 的构造函数中获取当前用户的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708980/