Получить текущего пользователя контекста http в контроллере .Net Core 2.0 WebAPI - PullRequest
0 голосов
/ 03 января 2019

У меня есть контроллер .Net Core 2 WebAPI, и мне нужно получить текущий идентификатор пользователя либо в его конструкторе, либо в одном из маршрутов.

[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 Framework System.Web.HttpContext.Current.User.Identity.Name

Любая идея?Обратите внимание, что это .Net Core 2.0 WebAPI, пожалуйста, не предлагайте решения для обычных контроллеров .net.

1 Ответ

0 голосов
/ 03 января 2019

ControllerBase.User будет содержать принцип текущего аутентифицированного пользователя для запроса и будет доступен только в объеме выполняемого действия, а не в конструкторе.

[HttpGet("[action]")]
public AppSettings GetAppSettings() {
    var user = this.User;
    var appSettings = new AppSettings {
        //Other settings
        CurrentUser = user.Identity.Name
    };
    return appSettings;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...