我正在使用N2Cms,我正在寻找我的一些问题.它在左侧有一个导航面板,在您展开树时通过ajax加载.
获取节点的childeren的代码调用带有一些参数的ashx文件.一个参数用于路径并包含斜杠.出于这个原因,它已被编码.
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f
Run Code Online (Sandbox Code Playgroud)
我在我的开发服务器(运行iis 7.5)上没有遇到任何问题,但是当部署到我们的测试服务器(iis7)时,导航无法正常工作.
调查这表明上面的url给出了500错误.
如果我解码网址
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/
Run Code Online (Sandbox Code Playgroud)
它没有任何问题.
不幸的是,我无法将生成此代码的代码更改为n2cms源代码的一部分,我假设它已被编码有充分理由.
有没有人知道我可以在我的web.config中做什么来允许编码参数或我可以在iis服务器上更改的东西?
编辑: 所以这个链接似乎暗示它作为一个安全问题故意这样做. http://msdn.microsoft.com/en-us/library/ee656542.aspx
建议的解决方案是升级到.net 4.0并将以下内容添加到web.config中
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎没有任何效果.
任何想法为什么这不起作用?
这可能是 URLScan 实用程序。URL 扫描根据配置文件中的规则阻止 URL。它还有自己的日志文件,因此您可以通过查看 URLScan 日志来确定。
在 google 上搜索 URLSCan 默认位置。