重写c#中的HttpContext.Current.Request.Url属性以返回编码的Url
在我的一个应用程序中,我正在重写c#中的HttpContext.Current.Request.Url属性以返回编码的Url,c#,overriding,handler,C#,Overriding,Handler,在我的一个应用程序中,我正在aspxcode中使用HttpContext.Current.Request.Url获取当前页面Url。由于页面url正在java脚本中使用,因此很有可能通过url中的恶意脚本来破坏JS函数 一个选项是,我们可以使用 HttpUtility.HtmlEncode(HttpContext.Current.Request.Url) 但是这段代码是用户控件(.ascx文件)的一部分,我必须在所有这些用户控件中更改它 那我有什么办法可以推翻 HttpContext.Curr
aspx
code中使用HttpContext.Current.Request.Url
获取当前页面Url
。由于页面url
正在java脚本中使用,因此很有可能通过url
中的恶意脚本来破坏JS函数
一个选项是,我们可以使用
HttpUtility.HtmlEncode(HttpContext.Current.Request.Url)
但是这段代码是用户控件(.ascx文件
)的一部分,我必须在所有这些用户控件中更改它
那我有什么办法可以推翻
HttpContext.Current.Request.Url
属性,以便返回编码的url
?所以我可以使用一些处理程序来处理应用程序中的所有url
属性
谢谢您的帮助。您不能重写
HttpUtility.HtmlEncode
,因为该方法是静态方法
但我想你可以试着用一个
public static class UriExtension {
public static string HtmlEncode(this Uri uri){
HttpUtility.HtmlEncode(uri);
// do the logic...
}
}
您可以调用该方法
HttpContext.Current.Request.Url.HtmlEncode()