2012-08-10 120 views
4

我需要接受表單郵件中的xml數據到我的ashx http處理程序。檢測到有潛在危險的Request.Form值ASHX httpHandler

但是,當我使用request.Form從請求中提取xml數據時,出現錯誤「檢測到潛在危險的Request.Form值..」錯誤。

我不能將驗證請求設置爲false,因爲它不是一個aspx頁面。我能做什麼?

例如

<textarea rows="12" cols="50" name="Post2Data"> 
<root> 
    <XML>.... 
</root> 
</textarea> 

request.Form["Post2Data"]; 

回答

4

您可以在web.config中添加以下條目。

<location path="~/YourHandler.ashx"> 
    <system.web> 
     <pages validateRequest="false" /> 
    </system.web> 
</location> 
<system.web> 
    <compilation debug="true" targetFramework="4.0"/> 
    <httpRuntime requestValidationMode="2.0" /> 
</system.web> 
+0

停止爲我工作.net452 – DFTR 2015-03-27 19:45:46

+0

2.0。請求驗證僅針對頁面啓用,而不針對所有HTTP請求。 https://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode.aspx – adatapost 2015-03-28 01:50:48

2

您可以使用請求的未驗證屬性,例如,

request.Unvalidated.Form["Post2Data"]; 

您必須親自檢查表單數據的有效性。在生產環境中設置validateRequest = false是不可取的,因爲它會讓您容易受到跨站點腳本攻擊。

相關問題