Inheritance: IClientMessageInspector
Exemple #1
0
        public TService CreateClient <TService>(EndpointAddress address, IConnectionParameters connectionParameters, MessageVersion messageEncodingVersion, int timeout)
        {
            CustomBinding binder = CreateCustomBinding(connectionParameters.ConnectionTimeout,
                                                       connectionParameters.Credentials, messageEncodingVersion);

            binder.SendTimeout = binder.CloseTimeout = binder.ReceiveTimeout = binder.OpenTimeout = TimeSpan.FromSeconds(timeout);

            var factory = new ChannelFactory <TService>(binder);

            var clientInspector = new CustomMessageInspector();

            if (_securityToken != null)
            {
                clientInspector.Headers.Add(new DigestSecurityHeader(connectionParameters.Credentials, _securityToken));
            }

            var behavior = new CustomEndpointBehavior(clientInspector);

            factory.Endpoint.Behaviors.Add(behavior);

            if (factory.Credentials != null)
            {
                factory.Credentials.UserName.UserName = connectionParameters.Credentials.UserName;
                factory.Credentials.UserName.Password = connectionParameters.Credentials.Password;
            }

            TService service = factory.CreateChannel(address);

            return(service);
        }
Exemple #2
0
        public TService CreateClient <TService>(EndpointAddress address,
                                                ConnectionParameters connectionParameters,
                                                MessageVersion messageEncodingVersion)
        {
            CustomBinding customBinding = CreateCustomBinding(connectionParameters.ConnectionTimeout,
                                                              connectionParameters.Credentials,
                                                              messageEncodingVersion);

#pragma warning disable CA2000 // Dispose objects before losing scope
            ChannelFactory <TService> factory = new ChannelFactory <TService>(customBinding);
#pragma warning restore CA2000 // Dispose objects before losing scope

            var clientInspector = new CustomMessageInspector();

            if (securityToken != null)
            {
                clientInspector.Headers.Add(new DigestSecurityHeader(connectionParameters.Credentials, securityToken));
            }

            var behavior = new CustomEndpointBehavior(clientInspector);

            factory.Endpoint.Behaviors.Add(behavior);

            if (factory.Credentials != null)
            {
                factory.Credentials.UserName.UserName = connectionParameters.Credentials.UserName;
                factory.Credentials.UserName.Password = connectionParameters.Credentials.Password;
            }

            TService service = factory.CreateChannel(address);
            return(service);
        }
    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRunTime)
    {
        CustomMessageInspector inspector = new CustomMessageInspector();

        clientRunTime.MessageInspectors.Add(inspector);
    }
Exemple #4
0
    public void ApplyClientBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime clientRuntime)
    {
        var inspector = new CustomMessageInspector();

        clientRuntime.MessageInspectors.Add(inspector);
    }