/// <summary> /// Initialises the client endpoint. /// </summary> /// <param name="endpointUri">Service endpoint.</param> /// <param name="endpointConfigurationName">Configuration name.</param> /// <param name="signingCert">Header signing certificate.</param> /// <param name="tlsCert">TLS client certificate.</param> private void InitialiseClient(string endpointUri, string endpointConfigurationName, X509Certificate2 signingCert, X509Certificate2 tlsCert) { Validation.ValidateArgumentRequired("tlsCert", tlsCert); soapMessages = new SoapMessages(); GetChangeHistoryViewPortTypeClient client = null; if (!string.IsNullOrEmpty(endpointUri)) { EndpointAddress address = new EndpointAddress(endpointUri); CustomBinding tlsBinding = BindingHelper.CreateTlsBinding(); client = new GetChangeHistoryViewPortTypeClient(tlsBinding, address); } else if (!string.IsNullOrEmpty(endpointConfigurationName)) { client = new GetChangeHistoryViewPortTypeClient(endpointConfigurationName); } if (client != null) { PCEHREndpointProcessor.ProcessEndpoint(client.Endpoint, signingCert, soapMessages); if (tlsCert != null) { client.ClientCredentials.ClientCertificate.Certificate = tlsCert; } changeHistoryClient = client; } }
/// <summary> /// Initialises the client endpoint. /// </summary> /// <param name="endpointUri">Service endpoint.</param> /// <param name="endpointConfigurationName">Configuration name.</param> /// <param name="signingCert">Header signing certificate.</param> /// <param name="tlsCert">TLS client certificate.</param> private void InitialiseClient(string endpointUri, string endpointConfigurationName, X509Certificate2 signingCert, X509Certificate2 tlsCert) { // Validation.ValidateArgumentRequired("signingCert", signingCert); Validation.ValidateArgumentRequired("tlsCert", tlsCert); soapMessages = new SoapMessages(); DocumentRepository_PortTypeClient client = null; if (!string.IsNullOrEmpty(endpointUri)) { var address = new EndpointAddress(endpointUri); var mtomBinding = BindingHelper.CreateMtomTlsBinding(); client = new DocumentRepository_PortTypeClient(mtomBinding, address); } else if (!string.IsNullOrEmpty(endpointConfigurationName)) { client = new DocumentRepository_PortTypeClient(endpointConfigurationName); } if (client != null) { PCEHREndpointProcessor.ProcessEndpoint(client.Endpoint, signingCert, soapMessages); if (tlsCert != null) { client.ClientCredentials.ClientCertificate.Certificate = tlsCert; } repositoryClient = client; } }
/// <summary> /// Specify the endpoint on which the signing and inspector behavior is to be applied. /// </summary> /// <param name="endpoint">The service endpoint to process.</param> /// <param name="messageID">A UniqueId instance which specifies the ID of the request message.</param> /// <param name="signingCertificate">The X509Certificate2 instance which will be used to sign the request message.</param> /// <param name="soapMessages">A SoapMessages instance which will contain the soap request and response messages on the endpoint.</param> public static void ProcessEndpoint( ServiceEndpoint endpoint, X509Certificate2 signingCertificate, SoapMessages soapMessages) { // Add a behavior to remove reply-to and set the message id, to, from ws-address details InspectorBehavior newBehavior = new InspectorBehavior(soapMessages, signingCertificate); // Add the behavior endpoint.Behaviors.Add(newBehavior); }
public MessageInspector(SoapMessages soapMessages, X509Certificate2 signingCertificate) { this.soapMessages = soapMessages; this.signingCertificate = signingCertificate; }