网络编程 
首页 > 网络编程 > 浏览文章

Request.UrlReferrer中文乱码解决方法

(编辑:jimmy 日期: 2024/5/9 浏览:3 次 )
参考了网络大部分的解决方案,没一个能搞定的,如果穷途末路,试试下面的方法:
将获得的前一页面的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属性了,所以就会抛出一个异常
上一篇:利用asp.net实现生成不重复订单号
下一篇:asp.net 实现下拉框只读功能
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网