每次请求进入WCF服务时,我都需要运行类似于HTTP模块的代码。代码的一些示例可能是身份验证,限制,日志记录等。每次发出请求时执行模块的最佳方法是什么?
编辑澄清
我们会做一些事情。首先,我们需要验证所有请求。每个请求都要求用户传递一组凭据,例如API密钥。在允许请求通过之前,我们需要验证密钥是否正确。
至于限制,我们需要限制特定用户可以提出的请求数量。我们说每小时100或类似的东西。
答案 0 :(得分:2)
WCF中有几个扩展点可用于您想要的内容。但是,您可能需要为不同目的使用不同的扩展点。
例如,对于日志记录,您可以使用IDispatchMessageInspector或IParameterInspector。对于错误处理,您可以使用IErrorHandler。
限制不是您通常使用扩展程序的内容,因为在许多情况下,内置throttling settings可能就足够了。
至于身份验证,安全性有它自己的一组扩展点,并且有几个选项,所以也许你可能想要澄清(或发布一个新的问题)具体细节,以便我们可以推荐适当的机制。