Я сейчас использую. NET Core, и я пытаюсь получить текущий идентификатор пользователя. Я понимаю, что System.Web
недоступен в NET Core, поэтому я попытался использовать IHttpContextAccessor
.
Я также добавил это в свой Startup.cs
: service.AddHttpContextAccessor()
Затем я попытался найти идентификатор пользователя, выполнив это в своем контроллере:
public Controller(IHttpContextAccessor httpContextAccessor){
var userId = httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)
}
Но всегда возвращает null, кто-нибудь знает почему и может посоветовать? Я также отключил anonymousAuthentication
и установил windowsAuthentication
в значение true.
Edit
Единственные изменения, которые я внес в свой Startup.cs
, - это ConfigureServices
метод.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddHttpContextAccessor();
}