获取请求IP和标头

时间:2010-09-12 08:47:41

标签: c# .net workflow workflow-foundation-4 request-headers

我正在使用Visual Studio设计器模式在Windows Workflow Foundation 4.0中构建服务。

如何在WF,VS Designer模式下检索客户端IP和请求标头?

2 个答案:

答案 0 :(得分:1)

从传入请求获取WCF详细信息的方法是实现IReceiveMessageCallback并将该类添加到NativeActivityContext.Properties。在OnReceiveMessage()函数中,您将收到WCF OperationContext,允许您从那里检索您喜欢的任何数据。

答案 1 :(得分:1)

似乎你想要做的是在设计器的工作流程中放置一个InvokeMethod活动(这在工具箱的Primitives部分中)。在那里指定一个类类型和要调用的方法。在此方法中,您可以调用OperationContext类来获取客户端地址和请求标头,如下所示:

public class Class1 {
    public static void SomeMethod() {
        EndpointAddress clientAddress = OperationContext.Current.Channel.RemoteAddress;
        MessageHeaders headers = OperationContext.Current.RequestContext.RequestMessage.Headers;
        // Do something with the address and / or headers...
        return;
    }
}