2010-04-23 47 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