2012-01-24 37 views
0

我有一個奇怪的情況發生,我試圖診斷,並會欣賞任何建議在哪裏看。WIF SessionAuthenticationModule沒有正確執行

我有一個ASP.NET應用程序使用WIF包含另一個ASP.NET應用程序作爲IIS 7.5中的一個子項。此子應用程序包含基於REST的Web服務。通過將URL粘貼到瀏覽器直接訪問此服務將重定向到ADFS登錄頁面。這是我期望它的工作原理。奇怪的是,我有第二個環境部署了相同的應用程序和服務,並且在這個環境中,我從來沒有重定向到登錄頁面。

我已經檢查了所有的web.config文件是相同的,並且還檢查了,我認爲可能有關的所有IIS設置。瀏覽到第二個環境的網頁需要登錄,但不能直接瀏覽REST .svc文件。我檢查了IIS中的所有HttpModules和Handler映射。我還啓用了跟蹤Microsoft.IdentityModel事件,並在第一個環境中可以看到重定向到STS的基本條目。在第二個環境中,我沒有看到任何WIF事件。 SessionAuthenticationModule似乎在我使用IIS失敗事件跟蹤檢查數據流時調用,但我不確定它爲什麼不需要身份驗證。

我熟悉與WIF cookie的相關問題,並確保所有的CookieHandler設置是正確的。我還關閉了瀏覽器窗口並清除了所有Cookie,以確保SessionAuthenticationModule沒有看到以前的WIF cookie。

如果你能想到其他的東西我應該檢查,請讓我知道。

回答

0

大量的試驗和錯誤,並仔細檢查我發現這是由HTTP處理程序的順序的差異造成了兩個服務器之間的applicationHost.config文件後。 ExtensionlessUrl-Integrated-4.0處理程序在一臺服務器上提取請求並重定向到ADFS。在另一臺服務器上,svc-Integrated-4.0處理程序首先響應請求。您可以在這裏閱讀更多關於此行爲的信息:http://support.microsoft.com/kb/2520479

0

如果你有兩個獨立的環境勢必ADFS的同一個實例相同的應用程序,URL的必須是不同的,所以我在陳述「所有的web.config文件是相同的」困惑?

您是否嘗試過在運行不正常的應用程序上重新運行FedUtil?

另外檢查AppPool設置。