C# 在处理请求的URL之前替换该URL中的非法或不需要的字符.net

C# 在处理请求的URL之前替换该URL中的非法或不需要的字符.net,c#,.net,iis,C#,.net,Iis,每当请求中包含特殊类型的字符时,或者当URL的大小超过一定长度时,我的站点都会引发异常 我如何控制URL并在处理它之前对其进行转换(例如:如果请求是“ert,我想将其转换为”。诸如此类 我正在使用.net和c#查找 URL编码(字符串)方法可用于对整个URL(包括查询字符串值)进行编码。如果在HTTP流中传递空白和标点符号等字符而不进行编码,则它们可能在接收端被误解。URL编码将URL中不允许的字符转换为字符实体等价物;URL解码会反转编码例如,当字符嵌入到要在URL中传输的文本块中时,它们被编

每当请求中包含特殊类型的字符时,或者当URL的大小超过一定长度时,我的站点都会引发异常

我如何控制URL并在处理它之前对其进行转换(例如:如果请求是“ert,我想将其转换为”。诸如此类

我正在使用.net和c#

查找

URL编码(字符串)方法可用于对整个URL(包括查询字符串值)进行编码。如果在HTTP流中传递空白和标点符号等字符而不进行编码,则它们可能在接收端被误解。URL编码将URL中不允许的字符转换为字符实体等价物;URL解码会反转编码例如,当字符<和>嵌入到要在URL中传输的文本块中时,它们被编码为%3c和%3e

使用以下命令:

您可以这样使用它:

System.Web.HttpUtility.UrlEncode("test t");

您将需要此库:
UrlEncode使用
对字符串进行编码。

下面的代码将用空格替换URL中的任何无效字符

           string url = System.Text.RegularExpressions.Regex.Replace(url , @"/^[!#$&-;=?-[]_a-z~]+$/", "");

我想这就是你想要的:
System.Web.HttpUtility.UrlEncode(字符串url)

可能会有所帮助。我认为在这种情况下,我不会尝试“清理”“URL。你为什么要奖励不好的行为?因为这不是我要处理的人类行为,我在寻找机器人,尤其是帮助确定我网站可信度的机器人,而不是报告内部错误,我至少可以把它们带到一个404未找到的页面。我仍然对如何使用这种方法感到困惑。假设请求以www.xyz.com的形式出现/“abc我想把它转换成www.xyz.com/abc 1-我应该把代码放在哪里?2-在这个例子中如何使用urlencode方法?你是说用户输入了这个方法,还是说你通过编程实现了它?如果是前者,您所说的是浏览器级应用程序处理。如果是后者,在您处理请求url之前的任何时候,您都可以编码并强制执行长度。我是说,我正在接收一个请求,其中包含一个导致站点抛出异常的字符。这个角色是“,它一直被转换为%22,应用程序将其视为物理路径的一部分…因此,我所要做的就是至少去掉此字符,并将其替换为零或任何其他字符,这些字符至少可以生成未找到的页面而不是异常。我应将此代码放置在何处?字符串url需要替换为我假设的请求url?@Amjad在我给出的示例中,url是要检查非法字符的字符串。