フォーム認証、または独自のカスタム Basic または Digest 認証を使用する WebAPI アプリケーションがあります。ほとんどのサーバーで問題なく動作します。ただし、一部のサーバーでは機能しません。
認証が失敗した場合、IIS がアプリケーション プール ユーザーを認証したことが原因であることがわかりました。Thread.CurrentPrincipal.Identity.AuthenticationType = "ネゴシエート". 私の知る限り、これはWindows認証です。ただし、問題のサイトでは Windows 認証が無効になっており、サーバー上の Windows 認証機能をアンインストールするまで行っても、同じ問題が発生しました。
runAllManagedModulesForAllRequests を true に設定すると、この問題が解決されることがわかりましたが、静的ハンドラーを介して実行されるものであっても、すべての要求にオーバーヘッドが追加されるため、望ましい回避策ではありません。
なぜこれが起こっているのか、または IIS で認証プロセスをデバッグする方法を誰かが教えてくれれば、非常に役に立ちます。
編集:違いがある場合はIIS7/7.5統合パイプライン