在 .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;
}