url资源包含&符号时出错

时间:2018-05-22 20:06:20

标签: c# asp.net-web-api

我们有一个带有以下资源网址的网络API。

http://www.example.com/book/bookid/name/bookname

现在有一些书籍中包含与&符号&'&当我们要求提供此类名称时,我们收到以下错误

使用的网址:

http://www.example.com/book/123/name/ban&ban

错误: 从客户端检测到潜在危险的Request.Path值(&)

我们尝试传递或使用编码值&即%26并得到同样的错误。

使用的网址:

http://www.example.com/book/123/name/ban%26ban

错误: 从客户端检测到潜在危险的Request.Path值(&)

现在,当我添加requestPathInvalidCharacters =""在httpruntime元素的web.config中的属性,它开始适用于上述两个URL。但是,当我阅读不同的文章时,据说使用requestPathInvalidCharacters =""是不好的做法。属性。

此外,由于"&"生产中有很多书名。和不同的特殊字符,我们无法避免发送"&"用于书名的&符号,有一个很好的方法来处理这个问题吗?

1 个答案:

答案 0 :(得分:12)

您应该选择在查询字符串中使用参数而不是路径。例如: http://www.example.com/book/bookid?name=Fizz&bookname=Buzz

以下是为什么会引发此异常的一些解释: http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx