6

SOを介して数週間この質問を解決しようとしてきましたがGoogle、あまり運がなかったので、最終的に自問してみようと思いました。

内部ユーザー向けの情報を生成するために、イントラネット上に非常にシンプルなASP.NETサイトをセットアップしています。匿名アクセスではなく、Windows 認証を使用しています。これは、サイトにアクセスしたユーザーに基づいてさまざまな情報を生成するためです。

簡単に言うと、これはWindows 7、アプリケーションを開発したローカル マシンでのテストで完全に機能します。ただし、配置しWindows 2008 R2 serverたい場所からサイトにアクセスすると、資格情報を要求するポップアップが表示され、資格情報を入力しても何度も要求されます。これは、サイトにリモートまたはローカルでアクセスしているかどうかに関係なく発生します。匿名アクセスを使用しようとすると、両方の方法でサイトにアクセスできますが、ユーザーを特定できないため、提供したい情報を生成できません。

ノート:

  1. IIS では、サイトに対して Windows 認証と ASP.NET 偽装を有効にしています。それ以外はすべて無効になっています。

  2. それを理解するために、現在、すべてのユーザーを許可するように web.config を設定しており、拒否していません。

  3. 私が使用しているホスト/URLはtoolName.organization.localです
  4. 2008 R2 サーバーの管理者ユーザーが別のドメインに存在し、テストしていたリモート ユーザーの問題であることを懸念していましたが、ローカルでも機能しません。
  5. AppHost ファイルでは、現在 windowsAuthentication が有効になっています。

                <windowsAuthentication enabled="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
                </windowsAuthentication>
    

確かに、私は通常、このサーバーで他のすべての内部サイトにフォーム認証を使用しているため、Windows 認証とこの問題には少し慣れていません。この時点で、次に何を試して確認すればよいかわかりませんので、アドバイスがあれば助かります。ありがとう。

4

3 に答える 3

10

これは少し古いトピックであることは知っていますが、まったく同じ問題がありました。NetworkService の代わりに Identity: ApplicationPoolIdentity を使用して AppPool を持っていたことがわかりました。それを切り替えると(IIS7.5の詳細設定で)、サーバーが追加の資格情報を要求しなくなり、パススルーは完全に機能しました。

それが役立つことを願っています!

于 2012-10-12T17:47:37.763 に答える
4

まず、Windows パススルー認証は Internet Explorer でのみ機能し、サイトが信頼済みサイトまたはイントラネット サイト セキュリティ グループにある場合にのみ機能することに注意してください。Firefox、Chrome などでは、常に資格情報の入力を求められます。

そうは言っても、いくつかの問題があります。

<authentication mode="Windows" />web.configに要素が必要です

アプリをユーザーのコンテキストで実行するかどうかを決定する必要があります。その場合、<identity impersonate="true"/>タグも必要になります。そうでない場合は、false にする必要があります (ただし、これがデフォルトです)。

サイト自体が Windows 認証によって完全に保護されている場合は、web.config に承認規則を設定する必要はありません。

于 2012-09-21T18:15:26.147 に答える