在 .Net Core 2.0 WebAPI 控制器中获取当前的 http 上下文用户
Get current http context user in .Net Core 2.0 WebAPI controller
我有一个 .Net Core 2 WebAPI 控制器,需要在它的构造函数或其中一个路由中检索当前用户 ID。
[Route("api/[controller]")]
public class ConfigController : Controller
{
private readonly IConfiguration _configuration;
public ConfigController(IConfiguration iConfig)
{
_configuration = iConfig;
}
[HttpGet("[action]")]
public AppSettings GetAppSettings()
{
var appSettings = new AppSettings
{
//Other settings
CurrentUser = WindowsIdentity.GetCurrent().Name
};
return appSettings;
}
}
上面的WindowsIdentity.GetCurrent().Name
不会给我我需要的东西。我想我需要一个相当于 .Net 框架的 System.Web.HttpContext.Current.User.Identity.Name
有什么想法吗?
请注意这是一个 .Net Core 2.0 WebAPI,请不要为常规的 .net 控制器建议解决方案。
ControllerBase.User
将保持请求的当前已验证用户的原则,并且仅在执行操作的范围内可用,而不是在构造函数中。
[HttpGet("[action]")]
public AppSettings GetAppSettings() {
var user = this.User;
var appSettings = new AppSettings {
//Other settings
CurrentUser = user.Identity.Name
};
return appSettings;
}
我有一个 .Net Core 2 WebAPI 控制器,需要在它的构造函数或其中一个路由中检索当前用户 ID。
[Route("api/[controller]")]
public class ConfigController : Controller
{
private readonly IConfiguration _configuration;
public ConfigController(IConfiguration iConfig)
{
_configuration = iConfig;
}
[HttpGet("[action]")]
public AppSettings GetAppSettings()
{
var appSettings = new AppSettings
{
//Other settings
CurrentUser = WindowsIdentity.GetCurrent().Name
};
return appSettings;
}
}
上面的WindowsIdentity.GetCurrent().Name
不会给我我需要的东西。我想我需要一个相当于 .Net 框架的 System.Web.HttpContext.Current.User.Identity.Name
有什么想法吗? 请注意这是一个 .Net Core 2.0 WebAPI,请不要为常规的 .net 控制器建议解决方案。
ControllerBase.User
将保持请求的当前已验证用户的原则,并且仅在执行操作的范围内可用,而不是在构造函数中。
[HttpGet("[action]")]
public AppSettings GetAppSettings() {
var user = this.User;
var appSettings = new AppSettings {
//Other settings
CurrentUser = user.Identity.Name
};
return appSettings;
}