public static Message CreateMessage(string ipAddress, int port) { Message requestMessage = Message.CreateMessage(MessageVersion.None, null); var remoteEndPointProperty = new RemoteEndpointMessageProperty(ipAddress, port); requestMessage.Properties.Add(RemoteEndpointMessageProperty.Name, remoteEndPointProperty); return requestMessage; }
public void TestGetClientIpAddressFromRemoteEndpointMessage() { var remoteEndpointMessageProperty = new RemoteEndpointMessageProperty("127.0.0.1", 8050); var httpRequestMessage = new HttpRequestMessage(); httpRequestMessage.Properties.Add( "System.ServiceModel.Channels.RemoteEndpointMessageProperty", remoteEndpointMessageProperty); var result = httpRequestMessage.GetClientIpAddress(); Assert.That(result, Is.EqualTo("127.0.0.1")); }
protected override void PrepareMessage(Message message) { base.PrepareMessage(message); IPEndPoint remoteIPEndPoint = this.rawConnection.RemoteIPEndPoint; if (remoteIPEndPoint != null) { RemoteEndpointMessageProperty property = new RemoteEndpointMessageProperty(remoteIPEndPoint); message.Properties.Add(RemoteEndpointMessageProperty.Name, property); } if (this.channelBindingToken != null) { ChannelBindingMessageProperty property2 = new ChannelBindingMessageProperty(this.channelBindingToken, false); property2.AddTo(message); property2.Dispose(); } }
public override void ConfigureHttpRequestMessage(HttpRequestMessage message) { message.Method = new HttpMethod(this.hostedHttpContext.result.GetHttpMethod()); message.RequestUri = this.hostedHttpContext.result.RequestUri; foreach (string webHeaderKey in this.hostedHttpContext.result.Application.Context.Request.Headers.Keys) { message.AddHeader(webHeaderKey, this.hostedHttpContext.result.Application.Context.Request.Headers[webHeaderKey]); } HostedRequestContainer requestContainer = new HostedRequestContainer(this.hostedHttpContext.result); RemoteEndpointMessageProperty remoteEndpointProperty = new RemoteEndpointMessageProperty(requestContainer); message.Properties.Add(RemoteEndpointMessageProperty.Name, remoteEndpointProperty); }
protected override void AddProperties(Message message) { HostedRequestContainer requestContainer = new HostedRequestContainer(this.hostedHttpContext.result); HttpRequestMessageProperty requestProperty = new HttpRequestMessageProperty(requestContainer); requestProperty.Method = this.hostedHttpContext.HttpMethod; // Uri.Query always includes the '?' if (this.hostedHttpContext.result.RequestUri.Query.Length > 1) { requestProperty.QueryString = this.hostedHttpContext.result.RequestUri.Query.Substring(1); } message.Properties.Add(HttpRequestMessageProperty.Name, requestProperty); message.Properties.Add(HostingMessageProperty.Name, CreateMessagePropertyFromHostedResult(this.hostedHttpContext.result)); message.Properties.Via = this.hostedHttpContext.result.RequestUri; RemoteEndpointMessageProperty remoteEndpointProperty = new RemoteEndpointMessageProperty(requestContainer); message.Properties.Add(RemoteEndpointMessageProperty.Name, remoteEndpointProperty); this.hostedHttpContext.SetRequestContainer(requestContainer); }
void BeforeAcceptWebSocket(HttpResponseMessage response) { this.SetRequestContainer(new HostedRequestContainer(this.result)); string address = string.Empty; int port = 0; if (this.requestContainer.TryGetAddressAndPort(out address, out port)) { this.remoteEndpointMessageProperty = new RemoteEndpointMessageProperty(address, port); } this.CloseHostedRequestContainer(); HostedHttpContext.AppendHeaderFromHttpResponseMessageToResponse(response, this.result); }
public static string FormatEP(RemoteEndpointMessageProperty ep) { return ep.Address + ":" + ep.Port; }
protected override void AddProperties(Message message) { HttpRequestMessageProperty requestProperty = new HttpRequestMessageProperty(this.listenerHttpContext); requestProperty.Method = this.listenerHttpContext.listenerContext.Request.HttpMethod; // Uri.Query always includes the '?' if (this.listenerHttpContext.listenerContext.Request.Url.Query.Length > 1) { requestProperty.QueryString = this.listenerHttpContext.listenerContext.Request.Url.Query.Substring(1); } message.Properties.Add(HttpRequestMessageProperty.Name, requestProperty); message.Properties.Via = this.listenerHttpContext.listenerContext.Request.Url; RemoteEndpointMessageProperty remoteEndpointProperty = new RemoteEndpointMessageProperty(this.listenerHttpContext.listenerContext.Request.RemoteEndPoint); message.Properties.Add(RemoteEndpointMessageProperty.Name, remoteEndpointProperty); }
protected override void OnAcceptWebSocketSuccess(WebSocketContext context, HttpRequestMessage requestMessage) { RemoteEndpointMessageProperty remoteEndpointMessageProperty = null; if (this.listenerContext.Request.RemoteEndPoint != null) { remoteEndpointMessageProperty = new RemoteEndpointMessageProperty(this.listenerContext.Request.RemoteEndPoint); } base.OnAcceptWebSocketSuccess(context, remoteEndpointMessageProperty, this.webSocketInternalBuffer, true, requestMessage); }
protected void OnAcceptWebSocketSuccess( WebSocketContext context, RemoteEndpointMessageProperty remoteEndpointMessageProperty, byte[] webSocketInternalBuffer, bool shouldDisposeWebSocketAfterClose, HttpRequestMessage requestMessage) { this.webSocketChannel.SetWebSocketInfo( context, remoteEndpointMessageProperty, this.securityProperty, webSocketInternalBuffer, shouldDisposeWebSocketAfterClose, requestMessage); }
protected override void AddProperties(Message message) { HostedHttpContext.HostedRequestContainer httpHeaderProvider = new HostedHttpContext.HostedRequestContainer(this.hostedHttpContext.result); HttpRequestMessageProperty property = new HttpRequestMessageProperty(httpHeaderProvider) { Method = this.hostedHttpContext.HttpMethod }; if (this.hostedHttpContext.result.RequestUri.Query.Length > 1) { property.QueryString = this.hostedHttpContext.result.RequestUri.Query.Substring(1); } message.Properties.Add(HttpRequestMessageProperty.Name, property); message.Properties.Add(HostingMessageProperty.Name, CreateMessagePropertyFromHostedResult(this.hostedHttpContext.result)); message.Properties.Via = this.hostedHttpContext.result.RequestUri; RemoteEndpointMessageProperty property2 = new RemoteEndpointMessageProperty(httpHeaderProvider); message.Properties.Add(RemoteEndpointMessageProperty.Name, property2); this.hostedHttpContext.SetRequestContainer(httpHeaderProvider); }
protected override Message DecodeMessage(ArraySegment<byte> data) { Message result = base.DecodeMessage(data); if (result != null) { result.Headers.To = this.localAddress; IPEndPoint remoteEndpoint = (IPEndPoint)this.socket.RemoteEndPoint; RemoteEndpointMessageProperty property = new RemoteEndpointMessageProperty(remoteEndpoint.Address.ToString(), remoteEndpoint.Port); result.Properties.Add(RemoteEndpointMessageProperty.Name, property); } return result; }
protected override void AddProperties(Message message) { HttpRequestMessageProperty property = new HttpRequestMessageProperty(this.listenerHttpContext) { Method = this.listenerHttpContext.listenerContext.Request.HttpMethod }; if (this.listenerHttpContext.listenerContext.Request.Url.Query.Length > 1) { property.QueryString = this.listenerHttpContext.listenerContext.Request.Url.Query.Substring(1); } message.Properties.Add(HttpRequestMessageProperty.Name, property); message.Properties.Via = this.listenerHttpContext.listenerContext.Request.Url; RemoteEndpointMessageProperty property2 = new RemoteEndpointMessageProperty(this.listenerHttpContext.listenerContext.Request.RemoteEndPoint); message.Properties.Add(RemoteEndpointMessageProperty.Name, property2); }