C# 特殊字符导致ASP.NET中的URL出错

C# 特殊字符导致ASP.NET中的URL出错,c#,asp.net,iis,web-config,iis-10,C#,Asp.net,Iis,Web Config,Iis 10,我正在URL中输入导致错误的特殊字符。我想重定向一个特殊页面,但我做不到 404重定向工作正常,但400重定向工作不正常 这些字符导致url出现问题: 1- "%" - HTTP Error 400 - Bad Request-Invalid URL 2- "&" - HTTP Error 400 3- "<" - HTTP Error 400 4- ">" - HTTP Error 400 5- ":" - HTTP Error 400 1-“%”-HTTP错误400-错

我正在URL中输入导致错误的特殊字符。我想重定向一个特殊页面,但我做不到

404重定向工作正常,但400重定向工作不正常

这些字符导致url出现问题:

1- "%" - HTTP Error 400 - Bad Request-Invalid URL
2- "&" - HTTP Error 400
3- "<" - HTTP Error 400
4- ">" - HTTP Error 400
5- ":" - HTTP Error 400
1-“%”-HTTP错误400-错误请求无效URL
2-“&”-HTTP错误400
3-“”-HTTP错误400
5-“:”-HTTP错误400
MyWeb.config设置:

<system.web>
    <customErrors mode="On" redirectMode="ResponseRedirect" />
</system.web>
<system.webServer>
    <httpErrors>
        <remove statusCode="400" subStatusCode="-1" />
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="400" path="400.aspx" responseMode="Redirect" />
        <error statusCode="404" path="404.aspx" responseMode="Redirect" />
    </httpErrors>
</system.webServer>

据我所知,url错误请求无效url是由http.sys而不是IIS或asp.net引发的,因此更改自定义错误页对于此类问题是没有用的

此外,无法修改http.sys的自定义错误页

如果您想让http.sys允许无效url,我建议您可以尝试在以下注册表项下创建以下DWORD值:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

AllowRestrictedChars  1

更多详细信息,您可以参考此信息。

据我所知,url错误请求无效url是由http.sys而不是IIS或asp.net引发的,因此更改自定义错误页对于此类问题毫无用处

此外,无法修改http.sys的自定义错误页

如果您想让http.sys允许无效url,我建议您可以尝试在以下注册表项下创建以下DWORD值:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

AllowRestrictedChars  1
更多详细信息,您可以参考此信息。

这是众所周知的。这是众所周知的。