2017-04-24 179 views
0

我使用Web方法開發了一個VB.NET中的Web服務,該方法接受字符串作爲必須採用XML文檔形式的參數。將XML的字符串表達式傳遞給IIS上的Web服務

我可以打開瀏覽器並調用服務,它提供了我需要傳遞字符串的文本框。

只要我通過複製我的XML並粘貼到框中,然後單擊調用傳遞任何XML字符串,我會得到一個錯誤。即使我在最簡單的XML表單中放入一個字符串,例如只有一個節點,我也會得到這個結果。

這是錯誤:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (Xmlin="<?xml version="1.0" ..."). at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) at System.Web.HttpValueCollection.EnsureKeyValidated(String key) at System.Web.HttpValueCollection.Get(String name) at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection) at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

+0

它實際上是一種防止惡意輸入的保護。您需要禁用輸入驗證 –

回答

0

把下面的屬性上面的方法:

[ValidateInput(false)] 

這應該允許它讀取XML,而不是它拋出一個異常,因爲它可能是危險的。

警告:這將停用所有驗證,並可能使您的端點面臨某些形式的攻擊或漏洞。如果您對此有任何疑問,請參考this提問類似的問題。

+0

謝謝ProNinja,讓我試試看。 – Moe

+0

@Moe做到了嗎? – Jaxi

+0

您好,試圖在web方法上面添加,但似乎沒有在vb.net中識別。它來自哪一類?我知道的webMethod我使用System.Web.Services – Moe

相關問題