首页 > 代码库 > ASP.NET HttpHandler使用总结
ASP.NET HttpHandler使用总结
在网络开发中,基本上任何项目都会涉及到一些xml配置文件,用来存放一些敏感数据,通过这些文件都是不允许客户端浏览的,那么如何禁止用户浏览?直接对有关xml文件的请求做特殊处理即可。在ASP.NET中,HttpHandler用来处理特定类型的请求。HttpHandler定义如下:
public interface IHttpHandler { // Summary: // Gets a value indicating whether another request can use the System.Web.IHttpHandler // instance. // // Returns: // true if the System.Web.IHttpHandler instance is reusable; otherwise, false. bool IsReusable { get; } // Summary: // Enables processing of HTTP Web requests by a custom HttpHandler that implements // the System.Web.IHttpHandler interface. // // Parameters: // context: // An System.Web.HttpContext object that provides references to the intrinsic // server objects (for example, Request, Response, Session, and Server) used // to service HTTP requests. void ProcessRequest(HttpContext context); }
以接口的形式定义,所以自定义类只要实现该接口,即可对特定类型的请求进行特殊处理。就以禁止下载xml文件为例,演示如何使用IHttpHandler。
定义一个CustomHandler类,实现IHttpHandler接口
namespace AspNet.HttpHandler.HttpHandler{ public class CustomHandler : IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { //获取文件扩展名 string fileExtension = Path.GetExtension(context.Request.RawUrl); if (fileExtension.Equals(".xml")) { context.Response.ContentType = "text/plain"; context.Response.Write("File not found"); } } }}
现在在Web.config文件中对CustomHandler进行在IIS7中的配置:
<system.webServer> <handlers> <add name="CustomHandler" path="*.xml" verb="GET" type="AspNet.HttpHandler.HttpHandler.CustomHandler"/> </handlers>
</system.webServer>
path:代表处理的请求类型,以后是处理所有的xml文件请求
verb:代表请求的方式,如:GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS
type:处理这些请求的HttpHandler
在IIS6中配置如下:
<system.web> <httpHandlers> <add path="*.xml" verb="GET" type="AspNet.HttpHandler.HttpHandler.CustomHandler"/> </httpHandlers></system.web>
现在如果再请求xml文件,得到的返回结果是:File not found
ASP.NET HttpHandler使用总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。