IIS7 サーバーを使用する Windows Server 2008 上の IIS 7 で C#.NET 4.0 アプリケーションを実行しています。アプリケーションは会社のイントラネットで実行され、ページの読み込み時に資格情報の入力を求められることなく、ページを表示しているユーザーのログイン中の Windows ユーザー名を自動的に取得します。今、私は2つの問題に直面しています:
1) 現在、アプリは、アプリケーションが配置されている運用サーバー名 (例: XYZ\sam) を返します。現在ログオンしているユーザー名を取得したい (例: ABC\sam)。localhost では問題なく動作しますが、運用サーバーでは動作しません。
web.config で有効<authentication mode="Windows" />
にし、Windows 認証を有効にし、IIS で匿名認証を無効にしました。
Page.User.Identity.Name
、System.Web.HttpContext.Current.User.Identity.Name
、などを試しましSystem.Security.Principal.WindowsIdentity.GetCurrent().Name
たが、正しい名前を取得できませんでした。現在のウィンドウにログオンしているユーザーを取得するには?
2) アプリケーションにアクセスしようとすると、ユーザー名とパスワードを求めるウィンドウが表示され続けます。私がそれを無視すると、プロンプトが表示されます
401 - Unauthorized: 認証情報が無効なため、アクセスが拒否されました。指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。
どうすれば修正できますか?