統合Windows認証を使用してログインプロンプトを受信する 質問する

統合Windows認証を使用してログインプロンプトを受信する 質問する

Windows 2003 サーバー上の IIS 7 で .NET 3.5 アプリケーションを実行していますが、ログインを求めるプロンプトが引き続き表示されるため、統合 Windows 認証が正しく機能しません。IIS で Windows 認証を有効にし、他のすべてのセキュリティ タイプを無効に設定し、アプリケーションの web.config ファイルの認証/承認を次のように設定しました。

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
    <authenticationmode="Windows"/>
    <authorization>
    <deny users = "?" />
    </authorization>
</system.web>

この設定では、Windows ユーザーのバックグラウンド検証によってアクセスが許可され、匿名ユーザーは拒否されるはずです。しかし、サイトにアクセスしようとすると、Windows ログイン ポップアップが表示されます。

数日間この問題のトラブルシューティングを行っていますが、原因がわかりません。同様の問題に関する投稿に基づいて、URL にピリオドが含まれていないことを確認し、IE 設定が統合 Windows 認証を有効にするように設定されていることを再確認し、イントラネット サイトに URL を追加しましたが、それでもポップアップが表示されます。

さらにトラブルシューティングを行うために、IIS で匿名認証を有効にし、web.config ファイルを変更してログインできるようにし、Response.Write(System.Security.Principal.WindowsIdentifity.getcurrent().user.name.toString()) を追加して、認証でどのユーザーが使用されているかを確認してみました。結果は IIS APPPOOL\myapp で、これは明らかに私のアプリケーションの IIS アプリケーション プールです。

引き続き Windows 認証のみを使用しながら、ポップアップが表示されず、実際の Windows ユーザーに対して Windows 認証が実行されるように、どなたかが提供できる支援に本当に感謝します。

ありがとう。


さらにトラブルシューティングを行った後の追加メモ:

ログインに失敗し、Windows ログイン プロンプトが再度表示されるときに、ログインを試みたユーザー名が "SERVERNAME"\"USERNAME" として表示されることに気付きました。これは、サーバーとドメインを比較してユーザーを検証しようとしていると考えました。これを確認するため、ネットワーク ドメイン ユーザーと同じユーザー名とパスワードを使用して、アプリケーション サーバーに直接ローカル ユーザー アカウントを作成し、再度ログインを試みました。その結果、再度ログイン プロンプトが表示されましたが、今度はユーザー名とパスワードを入力すると、正常にログインできました。ネットワーク ユーザーとアプリケーション サーバーは同じドメインにあるため、IIS 認証がドメイン アカウントではなくローカル アプリケーション サーバー アカウントを指している理由がよくわかりません。現時点では、これは IIS に関する質問であることはわかっているので、forums.iis.net にも投稿しますが、何日もトラブルシューティングを続けてきたので、どなたかアドバイスをいただければ幸いです。

ベストアンサー1

私は現在 Windows 2008 サーバーで作業していますが、私の回答は Windows 2003 サーバーに関する OP の回答と完全に同じではありません。

私がやったことは次のとおりです (後で見つけられるようにここに記録します)。

私も同じ問題を抱えていました:

ログインプロンプト

私のウェブ.configファイルには、次のセクションがありました:

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <allow users="*" />
        <deny users="?" />
    </authorization>
</system.web>

IISでは、これらすべてが次のように解決されるようです。認証アイコン。

  1. 編集権限: ASP.NET アカウントに権限があることを確認してください。私のアカウントは元々追加されていませんでした。

ASP.NET 権限

それでは、認証:

認証機能

有効にする匿名認証とともにIUSR

匿名認証

有効にするWindows 認証右クリックして設定しますプロバイダー

NTLM を最初にする必要があります。

Windows 認証

次に、高度な設定...拡張保護受け入れるそしてカーネルモード認証を有効にするチェックされています:

高度な設定

これを実行すると、Web アプリケーションに戻り、[参照] リンクをクリックして、資格情報を再度入力せずにログインできました。

これが皆さんの多くにとって有益であることを願うとともに、私にとっても後々役立つことを願っています。

おすすめ記事