重写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()