2012-02-17 3 views
2

私は現在、Windows認証を使用してログインしているユーザーを含むASP .NETアプリケーションを作成しています。これにより、WindowsIdentityがIIS .NET AppPoolユーザーのままである間に、HTTPContext.UserとThread.Principalの両方が、予想される動作であるユーザーログインと同じ資格情報で設定されます。なぜIISはAppPoolからユーザーアカウントへの1つの要求のWindowsIdentityを上げているようですか?

私は最近、アプリケーションログで、WindowsIdentityがIISユーザーとして開始されますが、そのユーザーが誰かに昇格してしまう1つのリクエスト(通常はページをロードする5番目のリクエスト)があることに気付きましたログインします。

これは、ユーザーがルートパスにアクセスしている場合(たとえば、http://localhost/)のように見えます。 http://localhost/index.aspxなどの別の正確なパスを指定した場合、この要求は発生していないように見え、WindowsIdentityは決して変更されません。

(かなり大きい)コードベースを調べると、WindowsIdentityを偽装するメソッドが1つしか見つかりませんが、そのメソッドは特定のページの特定の状況とは別に呼び出されません。

なぜこのようなことが起きているのだろうと思っていました。IISがそれ自体でそれを実行している理由があったのでしょうか。

答えて

1

私はroot(http:// localhost)アクセスは管理者ユーザーのためだと思うので、管理者ユーザーであるかどうかを確認しています。http://loclahost管理者ユーザーですか?

+1

ユーザーが管理者であるかどうかに違いはありません。 URL http:// localhost /は、デフォルトのドキュメント(http://localhost/index.aspx)を使用し、その代わりに送信する必要があります。私はこれがIISが(意図的に、または副作用として)何かであるのか、コード固有のものであるのかを発見しようとしています。 – ChrisPatrick

関連する問題