Ho un sito intranet costruito in MVC6 utilizzando ASP.NET Core RC2. Voglio ottenere il nome utente di Windows della persona che accede al sito intranet.Come ottenere l'utente corrente di Windows con ASP.NET Core RC2 MVC6 e IIS7
Quindi, se Jim va sul sito intranet, desidero che il sito riceva "Dominio \ Jim", mentre se Anne visita il sito intranet, desidero che il sito riceva "Dominio \ Anne".
Solo l'autenticazione di Windows è abilitata sul mio server IIS, l'autenticazione anonima è disabilitata.
Il mio sito è impostato per utilizzare l'autenticazione di Windows e per disabilitare l'autenticazione anonima.
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
Attraverso Debug posso usare System.Security.Principal.WindowsIdentity.GetCurrent().Name
, ma quella dei rendimenti del corso "IIS AppPool \ SiteName" sul server IIS.
Ho trovato molti esempi dalla versione precedente di ASP.NET che utilizza HttpContext e ho provato a inserirli nel mio controller con i seguenti, ma userName termina con null.
//Startup.cs
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//HomeController.cs
public HomeController(IHttpContextAccessor _accessor)
{
string userName = _accessor.HttpContext.User.Identity.Name;
}
Qual è il modo corretto per passare il nome utente di Windows a un sito Intranet in ASP.NET Nucleo RC2 MVC6?
Hai disattivato l'accesso anonimo al tuo sito? – DavidG
Sì. L'ho disabilitato con il seguente all'interno di. autorizzazione> Ho aggiornato la mia domanda con il blocco . –
Kyle
Avete registrato un middleware di autenticazione? – DavidG