为什么“requestPathInvalidCharacters”的默认设置排除了其他允许的字符?

Why does the default setting for `requestPathInvalidCharacters` exclude otherwise-allowed characters?

提问人:Josh M. 提问时间:2/26/2016 最后编辑:CommunityJosh M. 更新时间:2/27/2016 访问量:3375

问:

在 ASP.NET 中,该属性默认为 。据我了解,这些字符在 URL 的路径部分是不允许的(基于此属性的默认设置),但其中一些字符应该被允许。在该列表中,我很难理解为什么默认情况下不允许。例如,以下 URL 有效,但默认情况下会被 ASP.NET 拒绝:httpRuntime/@requestPathInvalidCharacters<,>,*,%,&,:,\*,&,:

通过电子邮件获得一个独特的人:http://myservice.com/People/[email protected]

要获取某个州内的唯一位置,请执行以下操作: http://myservice.com/States/VA/Localities/FIPS=001

我还可以换掉 for 以使 ASP.NET 默认拒绝 URL。但是这些字符/URL 是有效的,应该/确实可以正常工作。=:

那么,有没有人知道为什么选择这些不允许的角色呢?

(相关文章/答案:https://stackoverflow.com/a/13500078/374198)

asp.net URL URI 标准

评论

1赞 EdSF 2/27/2016
+1 不得不:)自己找出答案这是我迄今为止找到的最好的解释(至少对于冒号)。没有尝试过这个 - 看看它是否作为查询字符串(之后)而不是“虚拟路径”(如前所述)工作呢?:?
0赞 Josh M. 2/27/2016
@EdSF我会看一下链接,谢谢。我想在路径标识唯一实体的情况下在路径中执行一些此类操作,而不是查询多个实体(如您提到的,这应该在查询字符串中完成)。诚然,我的例子很糟糕。将更新它们。
0赞 Josh M. 2/27/2016
感谢您的链接,它至少有助于发现一个用例。

答: 暂无答案