欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net2.0 URL重写以及urlMappings问题(2)】,下面是详细的分享!
asp.net2.0 URL重写以及urlMappings问题(2)
public class ResponseFilter : System.IO.Stream
{
public ResponseFilter(System.IO.Stream sink, string _str)
{
_sink=sink;
//
// TODO: 在此处添加构造函数逻辑
//
this.str=_str;
}
private string str="";
private System.IO.Stream _sink;
private long _position;
private System.Text.Encoding end=System.Text.Encoding.GetEncoding("GB18030");
private System.Text.StringBuilder oOutput=new System.Text.StringBuilder();
// The following members of Stream must be overriden.
public override bool CanRead
{
get { return true; }
}
public override bool CanSeek
{
get { return true; }
}
public override bool CanWrite
{
get { return true; }
}
public override long Length
{
get { return 0; }
}
public override long Position
{
get { return _position; }
set { _position=value; }
}
public override long Seek(long offset, System.IO.SeekOrigin direction)
{
return _sink.Seek(offset, direction);
}
public override void SetLength(long length)
{
_sink.SetLength(length);
}
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);
//}
}
}
以上所分享的是关于asp.net2.0 URL重写以及urlMappings问题(2),下面是编辑为你推荐的有价值的用户互动:
相关问题:在ASP.NET中如何实现和利用URL重写
答:关于它的好处,我将在本篇文章的“如何利用URL重写”部分来详细的说明。URL重写可以通过编程的方式来实现。ASP.NET中的Contex.RewritePath()方法可以让你从程序中实现重写请求的URL。一旦重写后,系统将使用新的路径来继续执行这个请求。在Global.... >>详细
相关问题:asp.net如何进行url重写
答:解决方法:如下, 我们的网页URL后经常会跟有多个的参数,比如Information.aspx?ID=1&Type=2,这样的URL让人太直观的看到了参数,感觉不是很好,而且会导致URL很长,所以可以用下面的方法来重写URL,即可以缩短URL、又易于被搜索引擎收录,还可以... >>详细
相关问题:在ASP.NET中如何实现和利用URL重写
答:关于它的好处,我将在本篇文章的“如何利用URL重写”部分来详细的说明。URL重写可以通过编程的方式来实现。ASP.NET中的Contex.RewritePath()方法可以让你从程序中实现重写请求的URL。一旦重写后,系统将使用新的路径来继续执行这个请求。在Global.... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
