加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET 4 URL限制:为什么URL不能包含任何内容?人物

发布时间:2020-12-16 04:28:22 所属栏目:asp.Net 来源:网络整理
导读:http://site.com/page%3fcharacter 此URL将返回以下错误: Illegal characters in path. 我已将它放在web.config中: system.webhttpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" /pages validateRequest="false" ... 我该如何解决
http://site.com/page%3fcharacter

此URL将返回以下错误:

Illegal characters in path.

我已将它放在web.config中:

<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
<pages validateRequest="false"> 
...

我该如何解决这个错误?

解决方法

如果要允许请求通过,则需要添加requestPathInvalidCharacters并将其设置为空字符串:
<system.web>
    <httpRuntime requestPathInvalidCharacters="" />
</system.web>

编辑您应该保留原始问题,因为现在我的答案没有意义.

但是在回答你的第二个问题时,那是因为?对应’?’在Windows上的文件名中不允许这样做.您可以将relaxedUrlToFileSystemMapping属性设置为true以更改此行为:

<system.web>
    <httpRuntime requestPathInvalidCharacters=""
                 relaxedUrlToFileSystemMapping="true" />
</system.web>

您可能希望查看HttpRuntimeSection类中的所有属性,以查看是否有其他可能适用的属性.

您还可以实现一个RequestValidator的子类,并设置您的web.config以使用您的子类(可能会允许所有URL通过?).就个人而言,我不会打扰,只是让内置类处理它.普通用户不太可能偶然输入“?”在一条路上,为什么要为恶意用户改善用例而烦恼呢?

顺便说一句,这实际上是ASP.NET 4中的一个新功能,这就是为什么Stack Overflow不会发出错误:它在.NET 3.5上运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读