我有一个可通过2个不同的绑定访问的WCF服务,一个TCP和一个NamedPipe。 NamePipe只在本地用于速度原因,在服务端我需要知道我是否在本地调用(从同一台计算机,通过namedpipe)来强制执行一些许可限制。
要走的路是什么?我已经看到有一个OperationContext.Current
但是我没有找到关于当前绑定的任何信息,所以我想还有另一种方法可以获得它(或者至少知道我已经从同一台电脑)。
答案 0 :(得分:0)
您可能想要使用System.ServiceModel.Channels.MessageProperties
OperationContext context = OperationContext.Current;
// check if context is not null
MessageProperties messageProperties = context.IncomingMessageProperties;
如果请求来自浏览器,您将获得HttpRequest个对象, 其中包含属性IsLocal,如果请求来自本地计算机,则为true;否则,错误。
希望这有帮助!