ASP.NET教程:URL重写的实现
最近有个朋友要做url重写的东西,我帮他弄了弄,回头看当年自己写的那个文章,当时以为自己写的很容易理解.但现在再看却觉得写的不好.而今天百度了一下urlrewriter发现我这个文章竟然排第二.为了方便更多朋友,我再写点东西补充下.
一般用百度搜的朋友都是对这个不了解但又急需要用的,我想,再多的语言也比不过一句代码.于是我把今天帮朋友时候写的一个小例子传了上来.这个小例子的目的是实现对任意url的重写(但不包括二级域名的,有需要二级域名的也可以先了解下url重写的概念). 这个小项目的制作过程如下
需要对诸如http://song2.cn/viewnews/2009/3/2.html的url进行重写.将其重写为http://song2.cn/viewnews.aspx?id=2&year=2009&month=3
下载微软的那个URLRewriter.dll,使用这个对url进行重写.
我们来看这个url, http://song2.cn/viewnews/2009/3/2.html(当然也可能是3.html,6.html,7.html).要重写,首先是截获url请求,然后分析当时的url,最后跳转到相应的页面.所以我们第一步是要截获url请求.为此新建一个类库叫URL,在该类库中引用URLRewriter.dll.新建一个类myrewritter.cs,代码如下
namespace URL
{
public class myrewritter : URLRewriter.BaseModuleRewriter
{
protected override void Rewrite(string requestedPath, HttpApplication app)
{
if (requestedPath.Contains("viewnews/2009/3/2.html"))
app.Context.RewritePath("/viewnews.aspx?id=2&year=2009&month=3");
else
app.Context.RewritePath("/here.aspx");
}
}
}
可以看到该类继承了URLRewriter.BaseModuleRewriter,然后在Rewrite方法中加入了我们自己的逻辑.现在,只要当前的url请求是viewnews/2009/3/2.html,我们就会将页面重写到/viewnews.aspx?id=2&year=2009&month=3.
这只是一个简单的例子,
相关文档:
ASP.NET软件工程师面试题
一、选择题
1. int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。
A. 9
B. 2
C. &n ......
在相同字符串的许多操作上,使用StringBuilder类会比使用String对象更有效率。
当你对一个string对象赋值时,这时会生成一个这个对象的副本,如果你赋值多次的话在系统中就会保存多个这个对象的副本,会对系统资源造成很大的浪费,但是StringBuilder不会出先上述情况
String数据类型代表的 ......
经过一个多月的准备,我的小站ASP.NET学习网(www.17aspx.com)终于上线了。界面图如下:
ASP.NET学习网(www.17aspx.com),为ASP.NET学习者提供教程、示例、源码、工具等学习资料,推动ASP.NET学习者之间的交流。涉及ASP.NET、ASP.NET MVC、LINQ、VS2010、WPF、Silverlight、C#3.5等方面。 ......
1、通过附加一个cookiecontainer到httprequest对象中,可以得到登录后返回的代表SESSION ID的COOKIE。
2、将此COOKIE包含在一个cookiecontainer中并附加到另一个HTTPREQUEST请求中,则可以实现SESSION的还原。
部分主要代码:
CookieContainer cookieContainer =& ......
调用
验证码:<input type="text" id="txtValidate" style="border: solid 1px #9B9B9B; width: 85px;
height: 17px;" /> <img src="Rnd.aspx" mce_src="Rnd.aspx" style="width: 58px; height: 17px;
border: solid 1px #9B9B9B" align="abs ......