asp.net2.0 URL重写以及urlMappings问题(2)(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:asp.net2.0 URL重写以及urlMappings问题(1)
在asp.net2.0中的urlMappings倒是非常好用,可惜暂不支持正则表达式,不过,好在如果用IHttpModule的话 不管什么样的请求都会先经过IHttpModule这样就为URL重写提供了一个好机会:

public override void Close()
{
_sink.Close();
}

public override void Flush()
{
_sink.Flush();
}

public override int Read(byte[] buffer, int offset, int count)
{
return _sink.Read(buffer, offset, count);
}

// The Write method actually does the filtering.
public override void Write(byte[] buffer, int offset, int count)
{
string szBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count);
string ap = "action=\"";
int pos = -1;
if ((pos = szBuffer.IndexOf(ap)) != -1)
{
int epos = szBuffer.IndexOf("\"", pos ap.Length 1);
if (epos != -1)
{
szBuffer = szBuffer.Remove(pos ap.Length, epos - pos - ap.Length);
}
szBuffer = szBuffer.Insert(pos ap.Length, this.str);

byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(szBuffer);
_sink.Write(data, 0, data.Length);
}
else
{
oOutput.Append(szBuffer);
}
//下面的这一段可以用来修改之间的内容;
//Regex oEndFile = new Regex("", RegexOptions.IgnoreCase|RegexOptions.Compiled);
//if (oEndFile.IsMatch(szBuffer))
//{
// //Append the last buffer of data
// //附加上缓冲区中的最后一部分数据
// oOutput.Append(szBuffer);
// //Get back the complete response for the client
// //传回完整的客户端返回数据
// string szCompleteBuffer = oOutput.ToString().ToLower();
// int ipos = szCompleteBuffer.IndexOf("",ipos 7);
// string sp = szCompleteBuffer.Substring(ipos 7, epos - ipos );
// szCompleteBuffer = szCompleteBuffer.Remove(ipos 7,sp.Length-7);
// szCompleteBuffer = szCompleteBuffer.Insert(ipos 7, "dhz");
// // szCompleteBuffer = szCompleteBuffer.Replace(sp, "dhz");
// //No match, so write out original data
// //没有匹配,因此写入源代码
// byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(szCompleteBuffer);
// _sink.Write(data, 0, data.Length);
//}
//else
//{
// oOutput.Append(szBuffer);
//}
}
}

分享:谈谈HtmlControl与WebControl的区别与用途
Web控件和Html控件虽然好多功能相同并且长得很像 但是它们的内部实现机制是完全不一样的 Web控件要比Html控件执行效率要好 1. 使用起来也相当方便,举个简单的例子,例如Button

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2008-08-22
相关.Net教程