HttpModule幹什麼,怎麼實現,可以去看二十四畫生前輩的http://esshs.cnblogs.com/archive/2005/05/14/155339.html或是其中提到的msdn文檔:http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconhandlingpublicevents.asp或http://www.microsoft.com/china/MSDN/library/architecture/patterns/esp/ImpInterCEptingFilterInASP.mspx。
DNN中有9個HttpMoudle。都在HttpMoudles檔案夾下。大致看了下,對這幾個模組幹什麼有了個初步的瞭解。也讓我更清楚什麼事應該放在HttpMoudle中做。什麼時機來做。
l AutoUpgradeModule:這是DNN實現線上安裝的關鍵,它會判斷是否需要安裝,或者是否需要升級資料庫。而調用Upgrade服務。
l CachingModule:不是很清楚幹什麼的。調用了FileSystem服務。Mark一下,下次來看。
l DNNMembershipModule:在application.AuthenticateRequest加掛了處理許可權的方法。
l ExceptionModule:在application.Error上加掛了處理錯誤的方法。
l LoggingModule:分別在Init和Dispose中進行了一次日誌的記錄。
l PersonalizationModule:在application.EndRequest進行本地化。即通過User的資訊載入相應的語言套件。如果是匿名使用者則按預設值進行。很想瞭解怎麼像Google一樣實現動態本地化。(具體實現細節還沒有學習,好像對匿名使用者有於Asp2.0相似的處理)
l SchedulerModule:啟用或停止一個與application相關的調度線程。
l UsersOnlineModule:在application.AuthorizeRequest進行線上使用者列表的更新。在UserOnlineController中可以看到具體修改的內容。
l UrlRewriteModule:處理關於Url具體的分析。是整個頁面動態載入的用一個關鍵。從具體的Url可以看出來。幾乎所有頁面都是以Default.aspx來結尾的。說明它們都是動態書寫的沒有這個定位系統來傳遞資訊,也是沒有辦法正常進行的。相關的類在HttpModules\UrlRewrite\Config檔案夾下。主目錄的SiteUrls.xml定義了一些正則規則式。看這個東西我會比較頭痛。。。