我正在使用ASP.NET MVC 2應用程序對DB2表執行基本的CRUD操作。當通過在IE中加載它來測試我的應用程序時,如果我將字符放入日期字段中的數字字段或數字中,或者與我的View Model中的數據類型不兼容的某種其他形式的數據,MVC將在其末尾執行正確的錯誤處理並且該視圖返回由Html.ValidationSummary()mvc幫助程序顯示的適當的模型狀態錯誤消息。爲什麼驗證通過第三方工具測試我的asp.net mvc 2應用程序時無法正常工作?
但是,當我使用IBM AppScan等程序運行測試或使用Fiddler2僞造POST請求時,應用程序將跳出。
我正在執行我認爲以兩種不同方式進行的相同測試,並獲得各種結果。
我也使用了MVC的AntiForgeryToken系統,但這並沒有太大的好處,因爲這些程序只是掃描請求數據,找到令牌,並確保它們包含在僞造的POST中。
另請注意,我在服務器端使用DataAnnotations來處理這些驗證中的幾個,而不是獲得註釋應該返回的錯誤,頁面被重定向到未捕獲異常的應用程序錯誤頁面。
我其實很困惑。我錯過了什麼?
可能是因爲你做得不對。在瀏覽器和Fiddler中創建的POST之間發佈的數據有什麼區別?你不能在Fiddler中監控請求以查看差異嗎? – LukLed
好的,更正。通過Fiddler發佈的僞造數據被正確驗證;這留下了任何IBM AppScan正在做的事情的奧祕。 – jason
你不能在服務器端檢查'HttpContext.Current.Request.Form'嗎? – LukLed