2012-03-16 20 views
1

詳細を "false" に置く場合でも、ユーザーを偽装し続ける: - ASP.NET MVC 3 - Windows認証モード は - で、だから、6私のアプリは、私はweb.configファイルで私のアプリの

をIIS web.configファイル私はfalseに偽装を置くが、私はEnvironment.UserNameで現在のユーザーを取得しようとすると、アプリは、ネットワークサービスのユーザーを取得して保持します。どうして?

答えて

2

あなたがUser.Identity.Nameプロパティを使用する必要がありますASP.NET MVCアプリケーションでの現在のユーザーを取得するには:

public ActionResult Index() 
{ 
    var currentUser = User.Identity.Name; 
    return Content("current user: " + currentUser); 
} 

Environment.UserNameはあなたのアプリケーションプールを実行するアカウントを与えます。

はまた、IISで仮想ディレクトリのプロパティで無効に匿名認証を持っているし、チェックWindows認証のみを残していることを確認してください。任意のクラスでのみビューとコントローラで

+0

? –

+1

@ ViniciusOttoni、どこでもあなたは 'HttpContextBase'にアクセスすることができます。これは、ASP.NETアプリケーションのほぼどこでも可能です。また、サービスレイヤーやモデルでは、ASP.NET成果物にアクセスしようとするべきではありません。これらのメソッドの引数として渡す必要があります。 –

関連する問題