2009-03-03 6 views
9

AD /ドメインコントローラを使用してクライアントネットワークにアプリケーションを展開しようとしています。Windows認証でユーザー名とパスワードの入力を求めるメッセージが表示される

私のアプリケーションは、Windows認証を使用する単純なasp.net C#アプリケーションです。

私はwin2003を使用しています。

基本的にVS2008を使用して、IIS6.0でホストされている新しいWebサイトを作成します。 変更は2つだけです。 1.アプリケーションのIISディレクトリセキュリティで、「統合セキュリティ」を有効にしました。
注:anonymousも有効です。

スケルトンコードの変更が1つだけ生成されました。 のdefault.aspxのPage_Loadメソッドに以下の追加ページへの閲覧の

using System.Security.Principal; 
... 
protected void Page_Load(object sender, EventArgs e) 
{ 
    WindowsIdentity id = WindowsIdentity.GetCurrent(); 
    Response.Write("<B>Windows Identity Check</B><br>"); 
    Response.Write("Name: " + id.Name + "<br>"); 
    Response.Write("<BR>"); 
    Response.Write("User.Identity: " + User.Identity.Name); 
    Response.Write("<BR>"); 
} 

出力: WindowsのアイデンティティCheck-名: NT AUTHORITY \ NETWORK SERVICE User.Identity:

User.Identity.Nameは現在のユーザー名を出力しません。私は追加この記事http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

で説明したように

私はこれが追加されたとき、私はUser.Identity.Nameから、ユーザ名を現在のユーザを得ることができる、ということであるuserstand何から
<authorization> 
    <deny users="?"/> 
</authorization> 

しかし、上記を追加すると、ブラウザでユーザー名とパスワードの入力を求められます。入力すると、User.Identity.Nameを使用してユーザー名を取得できます。しかし私は、ユーザー名/パスワードのポップアップを表示したくありません。アプリケーションでネットワーク資格情報に基づいてユーザーを認証する必要があります。

何か不足していますか?

+0

あなたはどのようなブラウザをテストしたのですか? IEのみがWindowsユーザー名/パスワード認証をパスします。 –

+1

これは必ずしも真実ではありません - FireFoxはWindows統合認証をサポートしています。 –

+0

ええ、Firefoxはこれに問題はありません。IEのようにローカルホスト名を信頼できる/イントラネットゾーンとして扱いませんが、必ず設定することができます。 FF用の既存のADMテンプレートでさえ、怠け者のシステム管理者が使用すると思います。 –

答えて

0

あなたのサイトはどのURLを使用していますか、IEゾーンは何ですか?アプリケーションがLocalIntranetゾーン外で実行されている場合は、パススルー認証がブロックされ、常にUser/Passwordの入力を求めるプロンプトが表示されます。

+0

私はまだhttp:// localhost/siteを使ってローカルにアクセスしようとしています。 IE、Firefox、Chrome – minalg

+0

すべてのメッセージが表示されます関連するIISログを質問に追加できますか?401/200シリーズのログ項目を探してください。 また、http://127.0.0.1/siteを試して、プロンプトが表示されるかどうか確認できますか? –

0

IEのインターネットオプションで[Windows統合認証を有効にする]が選択されていますか?

入力するIUSR_とユーザー名の両方に、アプリケーションがホストされているディレクトリに対する読み取りと実行のアクセス許可がありますか?

アプリケーションのディレクトリはIISサーバーに存在するのですか、またはWindows共有アクセス権が適用される共有上にありますか?

3

サイトがローカルイントラネットゾーンの一部であることをInternet Explorerが認識していることを確認してください。また、イントラネットゾーンの設定で、自動ログオンが有効になっていることを確認します。

3

IISでの設定が間違っている - 匿名アクセスを無効にすると、Webに設定したことを前提に統合認証が開始されます。私はあなたが、サーバアプリからそれを制御することができないと思います

<configuration> 
    <system.web> 
     <authentication mode="Windows" /> 
    </system.web> 
</configuration> 
0

経由configが、それは、資格情報を渡すためにIEで、あなたのユーザーがチェックオプション] - > [高度なインターネットの「Windows統合認証を有効にする」ために勧告することができるブラウザ機能であります

0

we.configファイルの設定を変更したくない場合。サイト認証のISサーバーマネージャーでは、Windows認証のみを有効にし、他の認証を無効にします。 enter image description here

Windows認証では、ユーザーを認証するためにWindows資格情報が必要です。これがログインを促す理由です。これを回避するには、サイトのIPまたはドメインを信頼できるイントラネットサイトとしてクライアントブラウザに設定する必要があります。それのために; ;

1)ブラウザの設定に移動 - >開くプロキシ設定 - >セキュリティ - >ローカルイントラネット - >サイト - >高度な

2)次に、あなたのサイトのドメインやIPアドレスが今見 enter image description here

を追加ブラウザのキャッシュをクリアした後に問題が解決したかどうか。

この作品は私のためのものです。 :)

0

we.configファイルの設定を変更したくないです。サイト認証のISサーバーマネージャーでは、Windows認証のみを有効にし、他の認証を無効にします。 enter image description here

Windows認証では、ユーザーを認証するためにWindows資格情報が必要です。これがログインを促す理由です。これを回避するには、サイトのIPまたはドメインを信頼できるイントラネットサイトとしてクライアントブラウザに設定する必要があります。それのために; ;

1)ブラウザの設定に移動 - >開くプロキシ設定 - >セキュリティ - >ローカルイントラネット - >サイト - >高度な

2)次に、あなたのサイトのドメインやIPアドレスが今見 enter image description here

を追加ブラウザのキャッシュをクリアした後に問題が解決したかどうか。

この作品は私のためのものです。 :)

チェックこのも Receiving login prompt using integrated windows authentication

+0

同じ回答を複数回転記しないでください。 – Sunil

関連する問題