MvcApplication.Init Modules集合中只有一個條目,名爲「__ASP_IntegratedDynamicModule_Shim」。在我的webforms應用程序中,大約有13個模塊,其中之一是「FormsAuthentication」。MvcApplication.Modules在MVC 3中令人驚訝地爲空。
在我的webforms應用程序中,我重寫了HttpApplication.Init,然後使用Modules [「FormsAuthentication」]來獲取FormsAuthenticationModule並連線到它的Authenticate事件以替換我自己的處理程序。我不知道如何做到這一點,現在我移動到MVC 3.
窗體auth模塊顯然運行在我的管道,因爲身份驗證模式=「窗體」工作正常(我可以登錄和使用標準的FormsAuthentication技術)。我正在使用集成了ASP.NET 4.0管道的IIS 7。
其他人注意到這一點嗎?我可能只是在做一些非常愚蠢的事情......
謝謝,列維。在WebForms中,我習慣於看到Init多次調用,IIRC是初始化一個對象池以處理不同線程上的同時傳入請求。我從來沒有看到它在這種不完整的狀態下這樣稱呼。在調整代碼之後,第一次不會失敗,當然,第二次通過管道初始化爲17個模塊。看起來這是一個非常合理的解決方案。 – 2010-12-20 12:46:14