菜鸟学习IHttpModule 接口笔记(一)
2011-09-02 15:36
393 查看
推荐文章:演练:创建和注册自定义 HTTP 模块
通过看以上文章在此做一个总结,方便以后继续深入了解。
在每个请求的“到来之前”和“完成之后”,.net 默认都会做一些事情,至于什么事情,暂时无法猜测,先留一个疑问吧!相信下面可以让你看出一些端倪。做过一段时间的.net程序员应该知道machine.config文件吧!就是因为有它的存在,所以你的程序在没有web.config文件的情况下也可以运行。
该文件的位置一般在C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG,下面我给出其中的一部分代码,如下:
看到这些配置文件你会想到什么呢?是不是有一些些眼熟?
其实key为name的值对应的都是一些类名,除了OutputCache、Session这些特别熟悉的,再有就是WindowsAuthentication、FormsAuthentication、PassportAuthentication,相信这三个家伙你即使没有见过英文名字,应该也听说过他们的中文名字吧,他们就是webform里面著名的“表单的三种身份验证方式”,这下应该回忆起来了吧?
接着有“UrlAuthorization”——Url授权,msdn上查一下 UrlAuthorization 大概就知道是干什么的了,就是为用户访问服务器资源授权的,我们可以通过这种方式保护服务器上资源,对获取访问权限的用户提供资源,否则拒绝访问,如何实现:asp.net项目中通过Web.config配置文件及文件夹的访问权限!
这下大概知道这些所谓的“模块”是干什么的了吧?UrlAuthorization——在你请求之前,为你提供授权的功能;FormsAuthentication、WindowsAuthentication、PassportAuthentication——在你请求之前,分别为你提供不同身份验证的功能。
总结:说白了,这些模块就是为你提供某些功能的(自己可以扩展一下,既然可以提供一些功能,那么也可以直接把某些事情给做了——其实提供功能也是一些事情,呵呵!),至于为什么这些功能会被额外列出来我暂时还不明白;再有,就是这些模块是“并排”的,也就是说一个级别上的,这也就意味着你可以比较灵活的来定义“模块”来做一些事情而不影响其他模块工作。
想想“记住密码”功能是不是可以用这种方式实现呢?
通过看以上文章在此做一个总结,方便以后继续深入了解。
在每个请求的“到来之前”和“完成之后”,.net 默认都会做一些事情,至于什么事情,暂时无法猜测,先留一个疑问吧!相信下面可以让你看出一些端倪。做过一段时间的.net程序员应该知道machine.config文件吧!就是因为有它的存在,所以你的程序在没有web.config文件的情况下也可以运行。
该文件的位置一般在C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG,下面我给出其中的一部分代码,如下:
<httpModules> <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> <add name="Session" type="System.Web.SessionState.SessionStateModule" /> <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" /> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> <add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule" /> <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" /> <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </httpModules>
看到这些配置文件你会想到什么呢?是不是有一些些眼熟?
其实key为name的值对应的都是一些类名,除了OutputCache、Session这些特别熟悉的,再有就是WindowsAuthentication、FormsAuthentication、PassportAuthentication,相信这三个家伙你即使没有见过英文名字,应该也听说过他们的中文名字吧,他们就是webform里面著名的“表单的三种身份验证方式”,这下应该回忆起来了吧?
接着有“UrlAuthorization”——Url授权,msdn上查一下 UrlAuthorization 大概就知道是干什么的了,就是为用户访问服务器资源授权的,我们可以通过这种方式保护服务器上资源,对获取访问权限的用户提供资源,否则拒绝访问,如何实现:asp.net项目中通过Web.config配置文件及文件夹的访问权限!
这下大概知道这些所谓的“模块”是干什么的了吧?UrlAuthorization——在你请求之前,为你提供授权的功能;FormsAuthentication、WindowsAuthentication、PassportAuthentication——在你请求之前,分别为你提供不同身份验证的功能。
总结:说白了,这些模块就是为你提供某些功能的(自己可以扩展一下,既然可以提供一些功能,那么也可以直接把某些事情给做了——其实提供功能也是一些事情,呵呵!),至于为什么这些功能会被额外列出来我暂时还不明白;再有,就是这些模块是“并排”的,也就是说一个级别上的,这也就意味着你可以比较灵活的来定义“模块”来做一些事情而不影响其他模块工作。
想想“记住密码”功能是不是可以用这种方式实现呢?
相关文章推荐
- Httphandler,HttpModule学习笔记
- 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
- Requests:Python HTTP Module学习笔记(二)(转)
- 菜鸟之学习笔记一(接口和抽象类的区别)
- java WEB学习笔记32:HttpSession 接口常用方法 及 HttpServletRequest接口中的Session方法 Demo
- 深度学习Caffe实战笔记(12)Caffe 使用Python接口No module named google.protobuf.internal修复方案
- 新手菜鸟学习C#的笔记总结 之接口
- HttpModule HttpHandler HttpHandlerFactory 学习笔记
- .net学习笔记---HttpHandle与HttpModule
- Go圣经-学习笔记之http.Handler接口
- android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据
- Python学习笔记&接口测试总结
- 图解http学习笔记3.HTTP报文内的HTTP信息
- nginx限制连接数ngx_http_limit_conn_module模块笔记:二
- java学习笔记------ PrintStream_都市游侠_新浪博客 http://blog.sina.com.cn/s/blog_6c1fe98c01012lcu.html
- 【安全牛学习笔记】http协议基础
- AJax 学习笔记一(XMLHTTPRequest对象)
- http协议学习笔记
- OpenCV学习笔记16 OpenCV图像处理模块ImgProc Module. Image Processing(九)
- Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,Begin