欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Request.UrlReferrer中文乱码解决方法

程序员文章站 2024-03-06 09:05:01
参考了网络大部分的解决方案,没一个能搞定的,如果穷途末路,试试下面的方法: 将获得的前一页面的url分成两段,后面的参数部分进行编码(直接对url编码是不行的),然后再组合...
参考了网络大部分的解决方案,没一个能搞定的,如果穷途末路,试试下面的方法:
将获得的前一页面的url分成两段,后面的参数部分进行编码(直接对url编码是不行的),然后再组合一下就可以了。
复制代码 代码如下:

if(!page.ispostback)
{
reurl = page.request.urlreferrer.tostring().split('?')[0].tostring() + httputility.urlencode(page.request.urlreferrer.query,system.text.encoding.getencoding("gb2312"));
if (reurl == null || reurl == "")
{
reurl = httpcontext.current.request.url.pathandquery ;
}
viewstate["reurl"] = reurl;
}

另外注意点的是,返回到前一页时需要进行解码
response.redirect(server.urldecode((string)viewstate["reurl"].tostring()));
在参考解决方案发现了一段比较重要的代码,特别是对于安全性较高的网站来说可能有的作用。

1,在用户改变地址栏的url的参数的时候,提示用户无权执行此操作
把下面代码放在page_load事件里
复制代码 代码如下:

try
{
string strtemp = request.urlreferrer.pathandquery ;
}
catch
{
throw new exception("你不能修改参数!") ;
}

说明:此方法属于"偏门"方法,利用的是,如果用户修改url的参数,request.urlreferrer
将会得到null,null当然不可能有pathandquery属性了,所以就会抛出一个异常