2014-07-21 36 views
0

使用ServiceStack時,如果調用方使用查詢參數(如「?Foo = 3」),並且還提供具有「Foo」屬性的請求主體,則會發生無提示覆蓋。放棄正文中的版本。如何檢測ServiceStack查詢衝突?

作爲一個服務的作者,我想至少檢測到這種情況已經發生,以便我可以警告用戶或完全禁止該呼叫。我想避免爲這種邊緣情況編寫自定義擴展,有沒有辦法?

回答

0

如果同一屬性在查詢字符串和FORMDATA在您的服務或RequestFilters通過檢查IRequest您可以檢測,如:

var hasSameProperty = Request.QueryString["Foo"] != null 
    && Request.FormData["Foo"] != null; 
+0

我很欣賞直接從源答案,但恐怕是超級狡猾。我不認爲南希有什麼,你是否可以省略「綁定」階段的查詢? 也就是說,我只想忽略調用者可能嵌入查詢字符串的任何無關的查詢參數。我想我可以直接在篩選器中核實QueryString ... –

+0

@SamKanai您可以修改過濾器中的HTTP請求或提供[自定義請求綁定](https://github.com/ServiceStack/ServiceStack/wiki /串行化-反序列化#創建-A-定製請求DTO基粘合劑)。 – mythz

+0

好的,謝謝,我可以做到這一點。 –