知道哪个WCF绑定已用于与服务通信

时间:2017-07-24 07:17:55

标签: c# wcf

我有一个可通过2个不同的绑定访问的WCF服务,一个TCP和一个NamedPipe。 NamePipe只在本地用于速度原因,在服务端我需要知道我是否在本地调用(从同一台计算机,通过namedpipe)来强制执行一些许可限制。

要走的路是什么?我已经看到有一个OperationContext.Current但是我没有找到关于当前绑定的任何信息,所以我想还有另一种方法可以获得它(或者至少知道我已经从同一台电脑)。

1 个答案:

答案 0 :(得分:0)

您可能想要使用System.ServiceModel.Channels.MessageProperties

OperationContext context = OperationContext.Current;
// check if context is not null
MessageProperties messageProperties = context.IncomingMessageProperties;

如果请求来自浏览器,您将获得HttpRequest个对象, 其中包含属性IsLocal,如果请求来自本地计算机,则为true;否则,错误。

希望这有帮助!