当URL中存在%0A时,IIS 7错误请求响应

时间:2011-09-01 20:37:45

标签: asp.net asp.net-mvc asp.net-mvc-3 iis iis-7

我有一个应用程序应该接受来自Salesforce的不安全字符。它们是%0A和%0D(到目前为止......)并且它们无法正常工作。

我已将allowDoubleEscaping设为truerequestValidationMode设为2.0requestPathInvalidCharacters设为BLANKrelaxedUrlToFileSystemMapping为{ {1}}和truemaxRequestLength

它不起作用。然后我尝试将400的自定义错误设置为重定向到同一页面,而不传递Salesforce发送的数据。也没用。

然后我尝试通过IIS 7错误页面部分执行相同操作,但仍然无法正常工作。

我怎么能:

  1. 让应用接受角色?
  2. 或者让app / IIS重定向到同一页面进行手动输入?
  3. 所有这些都在ASP.NET MVC 3应用程序中,但我怀疑这很重要,因为它可能会在它调用ASP.NET运行时之前阻止它。

    我很感激一些帮助。提前谢谢!

3 个答案:

答案 0 :(得分:1)

您可能希望查看的位于IIS管理器中,单击您的服务器节点(或网站节点),找到Request Filtering图标。转到URL标签,您可以在这里始终允许特定的网址,或者更改一般处理网址过滤的方式。我确信这些设置在web.config文件的部分下也是可用的,但是我不知道所有设置元素和属性是什么(我确信你可以进行搜索并轻松找到它们)。

在修复此问题后,您可能不得不战胜ASP.NET。

答案 1 :(得分:0)

检查您的URLScan配置。 http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/

你碰巧在[DenyUrlSequences]部分中列出了这个吗?

答案 2 :(得分:0)

也许这有点太晚了,但对我而言,它通过使用AllowRestrictedChars注册表设置更改配置的异常(如https://support.microsoft.com/en-us/kb/820129中所述)。默认值为0,我将其更改为1.如果非零,Http.sys接受请求URL中的十六进制转义字符,解码为U + 0000 - U + 001F和U + 007F - U + 009F范围。