【问题标题】:In case of failed security authentication, IDispatchMessageInspector won't be triggered?如果安全认证失败,IDispatchMessageInspector 不会被触发?
【发布时间】:2011-08-20 15:29:01
【问题描述】:

我实现了 IDispatchMessageInspector 接口来记录原始请求/响应消息。我通过 IEndpointBehavior 接口应用它。它在大多数情况下运行良好。但是我发现当身份验证失败时不再记录消息。(我在 basicHttpBinding 中使用 TransportWithMessageCredential)。于是我开始调试WCF服务,发现inspector没有被调用。这个案子怎么办?

提前致谢。

【问题讨论】:

  • 最可能的原因是在您的检查员面前涉及安全问题。

标签: .net wcf wcf-security


【解决方案1】:

身份验证发生在处理任何请求之前,一旦身份验证失败,服务将不会处理任何请求,当然也不会调用IDispatchMessageInspector。

当身份验证发生时,客户端不会向服务发送任何请求。如果您确实想记录原始消息,可以将自定义 BindingElement 插入到绑定中。

【讨论】:

  • 所以如果我想记录原始消息或更改响应,例如添加我自己的标头,在这种情况下我该怎么办?是否有像 IDispatchMessageInspector 这样的其他方法来注入通道堆栈?谢谢。
  • 您可以使用此接口将自定义标头添加到响应中,但需要通过身份验证。想一想:如果认证失败,说明消息无效,为什么要更改无效消息?本文详细讲解WCF的扩展点:msdn.microsoft.com/en-us/magazine/cc163302.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多