1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > asp.net[web.config] httphandlers 与实现自由定义访问地址

asp.net[web.config] httphandlers 与实现自由定义访问地址

时间:2023-04-27 15:35:21

相关推荐

asp.net[web.config] httphandlers 与实现自由定义访问地址

今天一起来看一个简单的例子,主要是用来实现一个映射功能,

我们一般访问一个网址的时候比如是这样的

http://localhost:6166/WebSite1/api/request.aspx?strtext=123

那么大家一定都会说,在网站WebSite1的api目录下一定有request.aspx这样一个文件。

那么我今天要告诉你的就是没有这个文件。如下图

你没有看错,没有报任何的错误,

那这是怎么回事呢。

我们现在可以来看看这个目录下有一个Webconfig文件,咱们打开看一下

<?xml version="1.0"?><configuration><!--IIS经典模式下使用--><system.web><httpHandlers><add path="request.aspx" verb="*" type=" Bll.Handler.Test"/><add path="test.aspx" verb="*" type=" Bll.Handler.Test"/></httpHandlers></system.web><!--IIS集成模式下使用--><!--<system.webServer><handlers><add name="request" path="request.aspx" verb="*" type=" Bll.Handler.Test"/><add name="test" path="test.aspx" verb="*" type=" Bll.Handler.Test"/></handlers></system.webServer>--></configuration>

这是什么意思呢。

这里面有两种配置,主要是适用于IIS的集成模式和经典模式,只是配置不同,暂时没有其他的不同点

大家知道就行了,

下面以经典模式来分析下吧

<add path="request.aspx" verb="*" type=" Bll.Handler.Test"/>

path这个呢就是我们访问的网页地址,就是上面输入的,我们找不到的那个文件名

然后对应的处理程序是type=" Bll.Handler.Test"

verb="*" 是指定接收的方式,*是Get,Post都可以,也可以直接写Post这样就只接收Post提交了。

现在大家明白了吧

你访问request.aspx其实访问的就是Bll.Handler.Test.cs

看代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;using Bll;namespace Bll.Handler{class Test : IHttpHandler{public void ProcessRequest(HttpContext context){//接收这个参数string strtext = context.Request["strtext"].Trim();//输出这个参数context.Response.Write(strtext);}public bool IsReusable{get{return false;}}}}

我的Webconfig有两个配置意思就是说我们可以给这个Test.cs文件定义多个文件名来访问,这样前台怎么也找不到你实际访问的是那个页面,而且还可以达到封装的效果。让非开发着不能轻易的看到你的页面代码。

因为这个是可以放在一个类库里面的。

如下

也算是加了一层安全机制吧,

并且方便了大家控制

我们不管访问的是http://localhost:6166/WebSite1/api/request.aspx?strtext=123

还是http://localhost:6166/WebSite1/api/test.aspx?strtext=123

都是在访问一个一般处理程序Test.cs

而且这个访问的名字大家可以随便配置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。