【问题标题】:Special characters causes an error in URL in ASP.NET特殊字符导致 ASP.NET 中的 URL 错误
【发布时间】:2019-09-22 14:47:22
【问题描述】:

我在 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

我的 Web.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>

【问题讨论】:

标签: c# asp.net iis web-config iis-10


【解决方案1】:

据我所知,url Bad Request-Invalid URL 是由 http.sys 而不是 IIS 或 asp.net 抛出的,因此更改自定义错误页面对于此类问题是无用的。

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

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

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

AllowRestrictedChars  1

更多细节,你可以参考这个article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2012-03-06
    相关资源
    最近更新 更多