在WCF IDispatchOperationSelector中查找合同和操作
本文关键字:合同 操作 查找 WCF IDispatchOperationSelector | 更新日期: 2023-09-27 17:57:40
我定义了一个实现IDispatchOperationSelector的自定义OperationSelector,这样我就可以在执行该方法之前拦截来自客户端的消息。我这样做是为了检查消息中包含的公钥/私钥值,并在需要时抛出授权错误,而无需在我的服务中放入任何身份验证逻辑。
到目前为止,这一切都很好,但我想为每个服务操作指定一个[AuthenticationType]属性,我可以在OperationSelector中检查它。我是否可以参考或在操作选择器中找到相应的结论和操作?如果是,如何?
我建议混合应用于整个合同的MessageInspector
,然后创建一个将在底层MessageInspector
上注册操作名称的OperationBehavior
。
与此处显示的内容类似:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/bcd94cf9-2881-4081-a05b-771a6e6f9c06/(Carlos Figueira的回答)
这样,您的消息检查器将最终得到一个具有该属性的所有注册操作的列表,并且检查器可以识别哪些需要验证,哪些不需要验证。