在WCF IDispatchOperationSelector中查找合同和操作

时间:2013-02-03 18:14:51

标签: c# wcf authentication idispatchmessageinspector

我定义了一个实现IDispatchOperationSelector的自定义OperationSelector,以便在执行方法之前拦截来自客户端的消息。我这样做是因为我可以检查消息中包含的公钥/私钥值,并在需要时抛出授权错误而不在我的服务中添加任何auth逻辑。

到目前为止一切正常,但是我想为每个服务操作指定一个[AuthenticationType]属性,我可以检查这个OperationSelector。无论如何我可以参考,或在OperationSelector中找到相应的conctract和操作?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

我建议混合应用于整个合同的MessageInspector,然后创建一个OperationBehavior,它将在基础MessageInspector上注册操作名称。

与此处显示的相似:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/bcd94cf9-2881-4081-a05b-771a6e6f9c06/(Carlos Figueira的回答)

这样,您的消息检查器将最终得到具有该属性的所有已注册操作的列表,并且检查员可以识别哪些需要验证,哪些不需要验证。