【问题标题】:How to run code on every service request?如何在每个服务请求上运行代码?
【发布时间】:2010-11-03 20:29:48
【问题描述】:

每次请求进入 WCF 服务时,我都需要运行一些类似于 HTTP 模块的代码。代码的一些示例可能是身份验证、限制、日志记录等。每次发出请求时执行模块的最佳方法是什么?

编辑澄清

我们将做一些事情。首先,我们需要对所有请求进行身份验证。每个请求都需要用户传递一些凭据,比如 API 密钥。在允许请求通过之前,我们需要验证密钥是否正确。

至于限制,我们需要限制特定用户可以发出的请求数量。假设每小时 100 个或类似的东西。

【问题讨论】:

  • 请更具体,正如 tomasr 在下面询问的那样。 WCF 非常灵活 - 您需要更清楚自己想要实现的目标。

标签: c# .net wcf web-services


【解决方案1】:

WCF 中有几个扩展点可用于您想要的。不过,您可能需要为不同的目的使用不同的扩展点。

例如,对于日志记录,您可以使用 IDispatchMessageInspectorIParameterInspector。对于错误处理,您可以使用IErrorHandler

限制不是你通常使用扩展的东西,因为在许多情况下内置的throttling settings 可能就足够了。

至于身份验证,嗯,安全性有它自己的一组扩展点,并且有几个选项,所以也许您可能想澄清(或发布一个新问题)具体细节,以便我们推荐适当的机制。

【讨论】:

    猜你喜欢
    • 2018-10-16
    • 2023-02-01
    • 2013-07-01
    • 2014-05-18
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多