以前「アプリケーションプールのセキュリティーアカウントとASP.NET偽装」の記事を書きましたが、追加の覚え書きとして(その2)です。
まず、現在の実行アカウントを知りたい場合は、
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name)
で取得できます。
匿名認証のみ有効にした場合だと、 IIS APPPOOL\<サイト名> となります。
次に、基本認証のみ有効にした場合は、認証ダイアログが表示されるものの、匿名認証のみと同様に IIS APPPOOL\<サイト名> となります。
感覚的には、認証ダイアログで入力したアカウントが表示されるような気がするのですが、あくまでもアプリケーションプールの実行アカウントがサイトを動かしているということなので、こちらが正しい表示となります。
そこで、ASP.NET偽造を有効にすると、思惑通り認証に使用したアカウントが表示されます。
では、こんな場合は?
匿名認証・ASP.NET偽装を有効にして、ASP.NET偽装の特定のユーザーを指定した場合。
この場合は、指定した特定ユーザーとなります。
ではでは、これは??
基本認証・ASP.NET偽装を有効にして、ASP.NET偽装の特定のユーザーを指定した場合。
認証ダイアログにはASP.NET偽装の特定のユーザーに使用したアカウントとは別のものを使用します。
こちらは、ASP.NET偽装の特定のユーザーとなりました。
ちなみに、ASP.NET偽装の特定のユーザー の設定内容は web.config の<
identity
impersonate
=
"true"
userName
=
"" pass
word
=
""
/>
セクションに連動しているので、IISマネージャーの設定内容により自動的にweb.configが書きかえれれます。