Для упрощения в webapi-контроллере asp.net хорошо использовать объект Principal (аутентифицированный пользовательский объект) в качестве свойства или переменной, которые должны быть установлены в конструкторе контроллера. но User имеет значение null в конструкторе. как я могу получить текущего пользователя в конструкторе контроллера?Как получить главного пользователя в конструкторе webapi?
public class MyController : ApiController
{
string userId;
public MyController()
{
userId = User.Identity.GetUserId();
}
public IEnumerable<string> Get()
{
var userName = GetUserNameById(userId);
return new string[] { userName };
}
}
Вы добавили какую-то аутентификацию, будучи основным, OAuth, интеграцией Windows и т. Д. – Michael
Вы не можете. в тот момент в конвейере пользователь не был реализован в запросе. на основе того, какой поток аутентификации вы используете, вы можете назначить пользователя через actionfilter – Nkosi