2010-04-23 73 views
2

我试图发送一个XML字符串作为查询字符串的一部分。通常我会张贴这个XML,但我发送到第三方系统,我不能发布的东西。在查询字符串中发送Server.UrlEncoded XML导致错误

因此,我需要第三方系统来请求我系统中某个页面的服务。 (解释:第三方系统生成我的网页的PDF,我给它一个URL到我的页面,它是PDF的那个页面,所以XML文件包含我需要生成页面的数据)

无论如何,我得到我的查询字符串如下:

string data = Server.UrlEncode(xmlSnippet.ToString()); 

string sFullUrl = urlString + "?data=" + data; 

我给第三pary系统这个URL,并呼吁我的网页..除了请求不会到达的页面。它的失败到的Application_Error处理此消息:

"A potentially dangerous Request.QueryString value was detected from the client (data=[my XML data])" 

正如我知道我发送的数据是安全的,有没有什么办法可以使这项工作?

谢谢

回答

2

您需要禁用Request Validation

这是一个毫无希望的破坏和无效的“反跨站点脚本”功能,非常遗憾的是,它在ASP.NET中默认打开。它将阻止访问任何包含看起来像标签的传入数据的请求。

+1

您的意思是说微软在试图将一个平台统统统治网络开发时,试图包含阻碍真正开发的功能,而不是让开发人员决定他们想要用他们的代码做什么?那么,我会接受你的话!感谢&+1 :-) – DaveDev 2010-04-23 14:38:32