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
定义了一些正则规则式。看这个东西我会比较头痛。。。
本文转自 duguguiyu 51CTO博客,原文链接:http://blog.51cto.com/duguguiyu/362840,如需转载请自行联系原作者