2

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.NameSystem.Web.HttpContext.Current.User.Identity.Name、などを試しましSystem.Security.Principal.WindowsIdentity.GetCurrent().Nameたが、正しい名前を取得できませんでした。現在のウィンドウにログオンしているユーザーを取得するには?

2) アプリケーションにアクセスしようとすると、ユーザー名とパスワードを求めるウィンドウが表示され続けます。私がそれを無視すると、プロンプトが表示されます

401 - Unauthorized: 認証情報が無効なため、アクセスが拒否されました。指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。

どうすれば修正できますか?

4

2 に答える 2

0

あなたの2つの問題について、自動的にログに記録するには、ブラウザで設定する必要があります.私の経験では、IEでこれを行いました: - 特定のドメインに自動的にログイン

于 2013-11-07T03:45:34.250 に答える
0

質問 1 では、サーバーがドメイン サーバーであるため、ログインしているユーザー名を取得できません。ワークグループからドメインへの転送後に動作します。

質問 2 については、サーバー名 (例: サーバー名/アプリ名) でアクセスすると、問題なく動作します (ポップアウト資格情報はありません)。ただし、ip (例: xxx.xx.xx.x/appsname) を使用し、ツールのインターネット オプションを設定していない場合は、資格情報を要求されます。要因はまだわかっていません。

于 2013-11-14T05:24:35.533 に答える