注: 以下で説明する各手順では、同じドメイン ユーザー アカウントとしてログインしています。
リモート マシン上のサービスを ( ServiceController経由で) 制御する Web アプリケーションがあります。Web サイトにリモートで接続してサービスを制御しようとすると、InvalidOperationException: Access is denied が発生します。
WebサーバーからWebサイトに接続すると(リモートデスクトップで、ドメインユーザーとしてログインしてからWebページを開く)、期待どおりに動作するため、機能することがわかっています。
Windows 認証と偽装を要求するように IIS と ASP.NET を構成しました。これが失敗したときに現在のスレッドのプリンシパルをログに記録すると、リモートで接続しているか、サーバー自体から接続しているかに関係なく、スレッドが私の ID で実行されていることがわかります。
IIS で Kerberos 認証、NTLM 認証、およびその両方を同時に使用するように強制しようとしました。私のプリンシパルがその AuthenticationType を「Negotiate」または「NTLM」として報告するかどうかは問題ではありません。(ローカルマシンから)リモートで接続すると、どれも機能しません
これに関するもう1つの奇妙な点は、ローカルマシンからデバッグしている/リモートサーバーに接続している場合、常に機能することです! しかし、私はデバッグしていません。毎回失敗します!
ここで一体何が起こっているのでしょうか?