如何在每个服务请求上运行代码?

时间:2010-11-03 20:29:49

标签: c# .net wcf web-services

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

编辑澄清

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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