Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static CustomBinding GetDefaultBinding()
- {
- ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
- AsymmetricSecurityBindingElement securityElement = new AsymmetricSecurityBindingElement();
- securityElement.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12;
- securityElement.InitiatorTokenParameters = new X509SecurityTokenParameters(X509KeyIdentifierClauseType.IssuerSerial, SecurityTokenInclusionMode.Never);
- securityElement.RecipientTokenParameters = new X509SecurityTokenParameters(X509KeyIdentifierClauseType.IssuerSerial, SecurityTokenInclusionMode.Never);
- securityElement.ProtectTokens = true;
- securityElement.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;
- securityElement.RequireSignatureConfirmation = true;
- securityElement.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
- securityElement.EnableUnsecuredResponse = true;
- securityElement.IncludeTimestamp = true;
- securityElement.SetKeyDerivation(false);
- securityElement.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128Rsa15;
- securityElement.EndpointSupportingTokenParameters.SignedEncrypted.Add(new UserNameSecurityTokenParameters());
- securityElement.AllowSerializedSigningTokenOnReply = true;
- CustomBinding myBinding = new CustomBinding();
- myBinding.Elements.Add(securityElement);
- TextMessageEncodingBindingElement element = new TextMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, Encoding.UTF8);
- element.ReaderQuotas.MaxStringContentLength = int.MaxValue;
- element.ReaderQuotas.MaxDepth = int.MaxValue;
- element.ReaderQuotas.MaxArrayLength = int.MaxValue;
- element.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
- element.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
- myBinding.Elements.Add(element);
- HttpsTransportBindingElement httpsBindingElement = new HttpsTransportBindingElement();
- httpsBindingElement.RequireClientCertificate = true;
- httpsBindingElement.MaxBufferPoolSize = int.MaxValue;
- httpsBindingElement.MaxBufferSize = int.MaxValue;
- httpsBindingElement.MaxReceivedMessageSize = int.MaxValue;
- httpsBindingElement.KeepAliveEnabled = false;
- httpsBindingElement.AllowCookies = false;
- myBinding.Elements.Add(httpsBindingElement);
- myBinding.CloseTimeout = new TimeSpan(0, 10, 0);
- myBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);
- myBinding.SendTimeout = new TimeSpan(0, 10, 0);
- return myBinding;
- }
- private void ConfigureClientCredentials(ClientCredentials cc)
- {
- if (cc == null) return;
- cc.UserName.UserName = Options.WebserviceUsername;
- cc.UserName.Password = Options.AuthPassword;
- cc.ClientCertificate.Certificate = Options.ClientCertificate;
- cc.ServiceCertificate.DefaultCertificate = Options.IbaCertificate;
- cc.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
- }
- private void ConfigureEndPoint(ServiceEndpoint endpoint)
- {
- endpoint.Contract.ProtectionLevel = ProtectionLevel.EncryptAndSign;
- endpoint.EndpointBehaviors.Add(new CustomEndpointBehavior());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement