我定义了一个实现IDispatchOperationSelector的自定义OperationSelector,以便在执行方法之前拦截来自客户端的消息。我这样做是因为我可以检查消息中包含的公钥/私钥值,并在需要时抛出授权错误而不在我的服务中添加任何auth逻辑。
到目前为止一切正常,但是我想为每个服务操作指定一个[AuthenticationType]属性,我可以检查这个OperationSelector。无论如何我可以参考,或在OperationSelector中找到相应的conctract和操作?如果是这样,怎么样?
答案 0 :(得分:1)
我建议混合应用于整个合同的MessageInspector
,然后创建一个OperationBehavior
,它将在基础MessageInspector
上注册操作名称。
与此处显示的相似:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/bcd94cf9-2881-4081-a05b-771a6e6f9c06/(Carlos Figueira的回答)
这样,您的消息检查器将最终得到具有该属性的所有已注册操作的列表,并且检查员可以识别哪些需要验证,哪些不需要验证。