我有一个.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控制器建议解决方案。
答案 0 :(得分:2)
ControllerBase.User
将保留请求当前经过身份验证的用户的原则,并且仅在执行操作的范围内可用,而在构造函数中不可用。
[HttpGet("[action]")]
public AppSettings GetAppSettings() {
var user = this.User;
var appSettings = new AppSettings {
//Other settings
CurrentUser = user.Identity.Name
};
return appSettings;
}