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 定义了一些正则规则式。看这个东西我会比较头痛。。。