我有一個WebAPI應用程序,希望使用Forms認證或我自己的自定義Basic或摘要式身份驗證。它在大多數服務器上工作正常。但是在幾臺服務器上它不起作用。IIS使用AuthenticationType = Negotiate對應用池用戶進行意外身份驗證
我發現當身份驗證失敗時,它是因爲IIS已經對App Pool用戶進行了身份驗證。 Thread.CurrentPrincipal.Identity.AuthenticationType =「協商」。 AFAIK這是Windows身份驗證。但是,對於有問題的站點,Windows身份驗證已被禁用,我甚至在卸載服務器上的Windows身份驗證功能時仍然遇到同樣的問題。
我發現將runAllManagedModulesForAllRequests設置爲true將解決此問題,但它不是一種令人滿意的解決方法,因爲它會爲所有請求(即使是通過靜態處理程序運行的那些請求)增加開銷。
如果有人能告訴我爲什麼會發生這種情況,或者如何在IIS上調試身份驗證過程,這將非常有幫助。
編輯: IIS7/7.5綜合管線,如果它的確與衆不同
很好的建議,但似乎並沒有爲我所面臨的問題。 – ScottS