У меня есть сайт интрасети, построенный в MVC6 с использованием ASP.NET Core RC2. Я хочу получить имя пользователя Windows для доступа к сайту интрасети.Как получить текущего пользователя Windows с ASP.NET Core RC2 MVC6 и IIS7
Так что если Джим отправится на сайт интрасети, я хочу, чтобы сайт получил «Домен \ Джим», а если Энн отправится на сайт интрасети, я хочу, чтобы сайт получил «Домен \ Энн».
Только аутентификация Windows включена на моем сервере IIS, анонимная аутентификация отключена.
Мой сайт настроен на использование проверки подлинности Windows и отключения анонимной аутентификации.
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
Через отладки можно использовать System.Security.Principal.WindowsIdentity.GetCurrent().Name
, но это, конечно, возвращает «IIS AppPool \ Имя_узла» на сервере IIS.
Я нашел много примеров из старой версии ASP.NET с использованием HttpContext, и я попытался впрыснуть это в свой контроллер со следующим, но имя пользователя заканчивается нулевым.
//Startup.cs
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//HomeController.cs
public HomeController(IHttpContextAccessor _accessor)
{
string userName = _accessor.HttpContext.User.Identity.Name;
}
Что такое правильный способ передать имя пользователя Windows, на интранет-сайт в ASP.NET ядра RC2 MVC6?
У вас отключен анонимный доступ к вашему сайту? – DavidG
Да. Я отключил его со следующим:. <разрешение> authorization> Я обновил свой вопрос с помощью блока . –
Kyle
Есть ли у вас аутентификационное письмо? – DavidG