我有一个应用程序应该接受来自Salesforce的不安全字符。它们是%0A和%0D(到目前为止......)并且它们无法正常工作。
我已将allowDoubleEscaping
设为true
,requestValidationMode
设为2.0
,requestPathInvalidCharacters
设为BLANK
,relaxedUrlToFileSystemMapping
为{ {1}}和true
到maxRequestLength
。
它不起作用。然后我尝试将400的自定义错误设置为重定向到同一页面,而不传递Salesforce发送的数据。也没用。
然后我尝试通过IIS 7错误页面部分执行相同操作,但仍然无法正常工作。
我怎么能:
所有这些都在ASP.NET MVC 3应用程序中,但我怀疑这很重要,因为它可能会在它调用ASP.NET运行时之前阻止它。
我很感激一些帮助。提前谢谢!
答案 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范围。