【问题标题】:How to detect ServiceStack query collisions?如何检测 ServiceStack 查询冲突?
【发布时间】:2014-07-21 19:03:29
【问题描述】:

在使用 ServiceStack 时,如果调用者使用了查询参数,例如“?Foo=3”,并且还提供了带有“Foo”属性的请求正文,则会发生静默覆盖。正文中的版本被丢弃。

作为服务作者,我想至少检测到这种情况已经发生,以便我可以警告用户或完全禁止调用。我想避免为这种极端情况编写自定义扩展,有没有办法?

【问题讨论】:

    标签: .net rest mono servicestack


    【解决方案1】:

    您可以通过检查IRequest 来检测您的Services 或RequestFilters 中的QueryString 和FormData 中是否存在相同的属性,例如:

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

    【讨论】:

    • 我很欣赏直接从源头得到的答案,但恐怕这太繁琐了。我不认为有像南希那样的东西,你可以省略“绑定”阶段的查询吗?也就是说,我只想忽略调用者可能插入查询字符串的任何无关查询参数。我想我可以直接在过滤器中核对 QueryString...
    • @SamKanai 对,您可以在过滤器中修改 HTTP 请求或提供您的 own custom Request binding
    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    相关资源
    最近更新 更多