ASP.NET Core RC2を使用してMVC6でイントラネットサイトを構築しました。イントラネットサイトにアクセスしている人のWindowsユーザー名を取得したい。ASP.NET Core RC2 MVC6とIIS7で現在のWindowsユーザーを取得する方法
ジムがイントラネットサイトに行くと、私はそのサイトに "Domain \ Jim"を受け取り、Anneはイントラネットサイトに行くと "Domain \ Anne"を受け取るようにします。
IISサーバーでのみWindows認証が有効になっています。匿名認証は無効です。
私のサイトは、Windows認証を使用し、匿名認証を無効にするように設定されています。
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
デバッグを通して、私はSystem.Security.Principal.WindowsIdentity.GetCurrent().Name
を使用することができますが、それは当然リターンのIISサーバー上で「APPPOOL \サイト名をIIS」。
HttpContextを使用している古いバージョンのASP.NETの例が多く見つかりましたが、次のものを使用してコントローラに注入しようとしましたが、userNameがnullに終わりました。
//Startup.cs
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//HomeController.cs
public HomeController(IHttpContextAccessor _accessor)
{
string userName = _accessor.HttpContext.User.Identity.Name;
}
ASP.NET Core RC2 MVC6のイントラネットサイトにWindowsユーザー名を渡す正しい方法は何ですか?
あなたのサイトへの匿名アクセスを無効にしましたか? – DavidG
はい。私はの内部でそれを無効にしました。 authorization> ブロックで質問を更新しました。 –
Kyle
認証ミドルウェアが登録されていますか? – DavidG