Versión Copiada del tfs
This commit is contained in:
65
HttpUserAgentEndpointBehavior.vb
Normal file
65
HttpUserAgentEndpointBehavior.vb
Normal file
@@ -0,0 +1,65 @@
|
||||
Imports System.ServiceModel
|
||||
Imports System.ServiceModel.Channels
|
||||
Imports System.ServiceModel.Dispatcher
|
||||
Imports System.ServiceModel.Description
|
||||
Imports System.ComponentModel
|
||||
Public Class HttpUserAgentMessageInspector
|
||||
|
||||
Implements IClientMessageInspector
|
||||
Private Const USER_AGENT_HTTP_HEADER As String = "user-agent"
|
||||
|
||||
Private m_userAgent As String
|
||||
|
||||
Public Sub New(ByVal userAgent As String)
|
||||
Me.m_userAgent = userAgent
|
||||
End Sub
|
||||
|
||||
#Region "IClientMessageInspector Members"
|
||||
|
||||
Public Sub AfterReceiveReply(ByRef reply As System.ServiceModel.Channels.Message, ByVal correlationState As Object) Implements IClientMessageInspector.AfterReceiveReply
|
||||
End Sub
|
||||
|
||||
Public Function BeforeSendRequest(ByRef request As System.ServiceModel.Channels.Message, ByVal channel As System.ServiceModel.IClientChannel) As Object Implements IClientMessageInspector.BeforeSendRequest
|
||||
Dim httpRequestMessage As HttpRequestMessageProperty
|
||||
Dim httpRequestMessageObject As New Object
|
||||
If request.Properties.TryGetValue(HttpRequestMessageProperty.Name, httpRequestMessageObject) Then
|
||||
httpRequestMessage = TryCast(httpRequestMessageObject, HttpRequestMessageProperty)
|
||||
If String.IsNullOrEmpty(httpRequestMessage.Headers(USER_AGENT_HTTP_HEADER)) Then
|
||||
httpRequestMessage.Headers(USER_AGENT_HTTP_HEADER) = Me.m_userAgent
|
||||
End If
|
||||
Else
|
||||
httpRequestMessage = New HttpRequestMessageProperty()
|
||||
httpRequestMessage.Headers.Add(USER_AGENT_HTTP_HEADER, Me.m_userAgent)
|
||||
request.Properties.Add(HttpRequestMessageProperty.Name, httpRequestMessage)
|
||||
End If
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
End Class
|
||||
Public Class HttpUserAgentEndpointBehavior
|
||||
Implements IEndpointBehavior
|
||||
Private m_userAgent As String
|
||||
|
||||
Public Sub New(ByVal userAgent As String)
|
||||
Me.m_userAgent = userAgent
|
||||
End Sub
|
||||
|
||||
#Region "IEndpointBehavior Members"
|
||||
|
||||
Public Sub AddBindingParameters(ByVal endpoint As ServiceEndpoint, ByVal bindingParameters As System.ServiceModel.Channels.BindingParameterCollection) Implements IEndpointBehavior.AddBindingParameters
|
||||
End Sub
|
||||
|
||||
Public Sub ApplyClientBehavior(ByVal endpoint As ServiceEndpoint, ByVal clientRuntime As System.ServiceModel.Dispatcher.ClientRuntime) Implements IEndpointBehavior.ApplyClientBehavior
|
||||
Dim inspector As New HttpUserAgentMessageInspector(Me.m_userAgent)
|
||||
clientRuntime.ClientMessageInspectors.Add(inspector)
|
||||
End Sub
|
||||
|
||||
Public Sub ApplyDispatchBehavior(ByVal endpoint As ServiceEndpoint, ByVal endpointDispatcher As System.ServiceModel.Dispatcher.EndpointDispatcher) Implements IEndpointBehavior.ApplyDispatchBehavior
|
||||
End Sub
|
||||
|
||||
Public Sub Validate(ByVal endpoint As ServiceEndpoint) Implements IEndpointBehavior.Validate
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
End Class
|
||||
Reference in New Issue
Block a user