您的位置:首页 > 理论基础 > 计算机网络

DotNetNuke 5 C#版本解读之2--HTTP Modules

2010-07-21 09:12 246 查看
在前面文章里说明了DNN的架构,下面这个图应该说是更加能够全面的让你去了解它的结构:


代码

<friendlyUrldefaultProvider="CustomFriendlyUrl">

<providers>

<clear/>

<addname="DNNFriendlyUrl"

type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider,

DotNetNuke.HttpModules.UrlRewrite"includePageName="true"

regexMatch="[ˆa-zA-Z0-9_-]"/>

<addname="CustomFriendlyUrl"

type="CompanyName.FriendlyUrlProvider,CompanyName.FriendlyUrlProvider"/>

</providers>

</friendlyUrl>


上面只是粗略的说明了下DNN的url重写是如何进行的。代码级别的研究以及自定义url规则都会单独有文章来介绍。

PS:DNN的URL重写你如果掌握了,你完全可以把它移植出来到你的项目中。

DNN的ExceptionHTTPModule模块

上面url重写部分使用的是BeginRequest事件,而Exception模块我们需要在整个应用程序发生错误时就去执行某个方法。代码如下:


也同时会把这个异常信息存储到数据库中来供开发人员分析。


DNN的UserOnlineHTTPModule

这个Module监听的是AuthorizeRequest事件。每当一个用户向服务器端发出身份认证时这个HTTPModule就会向服务器发送请求,useronlineprovider就会执行。




DNN的usernolineprovider主要是使用Cookie来存放唯一标识的。这样可以防止那些在线的游客被重复记录。当然了这个功能主要是靠DNN的Scheduler模块

在后台有个线程没几分钟去执行下。

DNNUserOnline模块的代码级别研究也会在以后一篇文章里介绍。这里你知道原理就行。

其它还有Membership,Compression,RequestFilter,Analytics,Compression模块。Analytics这个功能我觉得对于很多监测网站数据访问量的人员来说是个很好的参考。

我会把对它的说明和Requestfilter放在一块讲解。估计接下来HttpModule部分还得写7-8篇文章才行。

Cheers

Nic
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: