Advertisement
Guest User

Untitled

a guest
Mar 9th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. public static CustomBinding GetDefaultBinding()
  2. {
  3. ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
  4.  
  5. AsymmetricSecurityBindingElement securityElement = new AsymmetricSecurityBindingElement();
  6.  
  7. securityElement.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12;
  8.  
  9. securityElement.InitiatorTokenParameters = new X509SecurityTokenParameters(X509KeyIdentifierClauseType.IssuerSerial, SecurityTokenInclusionMode.Never);
  10. securityElement.RecipientTokenParameters = new X509SecurityTokenParameters(X509KeyIdentifierClauseType.IssuerSerial, SecurityTokenInclusionMode.Never);
  11. securityElement.ProtectTokens = true;
  12.  
  13. securityElement.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;
  14.  
  15. securityElement.RequireSignatureConfirmation = true;
  16.  
  17. securityElement.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
  18. securityElement.EnableUnsecuredResponse = true;
  19. securityElement.IncludeTimestamp = true;
  20. securityElement.SetKeyDerivation(false);
  21. securityElement.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128Rsa15;
  22. securityElement.EndpointSupportingTokenParameters.SignedEncrypted.Add(new UserNameSecurityTokenParameters());
  23. securityElement.AllowSerializedSigningTokenOnReply = true;
  24.  
  25. CustomBinding myBinding = new CustomBinding();
  26. myBinding.Elements.Add(securityElement);
  27.  
  28. TextMessageEncodingBindingElement element = new TextMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, Encoding.UTF8);
  29. element.ReaderQuotas.MaxStringContentLength = int.MaxValue;
  30. element.ReaderQuotas.MaxDepth = int.MaxValue;
  31. element.ReaderQuotas.MaxArrayLength = int.MaxValue;
  32. element.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
  33. element.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
  34. myBinding.Elements.Add(element);
  35.  
  36. HttpsTransportBindingElement httpsBindingElement = new HttpsTransportBindingElement();
  37. httpsBindingElement.RequireClientCertificate = true;
  38. httpsBindingElement.MaxBufferPoolSize = int.MaxValue;
  39. httpsBindingElement.MaxBufferSize = int.MaxValue;
  40. httpsBindingElement.MaxReceivedMessageSize = int.MaxValue;
  41. httpsBindingElement.KeepAliveEnabled = false;
  42. httpsBindingElement.AllowCookies = false;
  43.  
  44. myBinding.Elements.Add(httpsBindingElement);
  45.  
  46. myBinding.CloseTimeout = new TimeSpan(0, 10, 0);
  47. myBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);
  48. myBinding.SendTimeout = new TimeSpan(0, 10, 0);
  49.  
  50. return myBinding;
  51. }
  52.  
  53. private void ConfigureClientCredentials(ClientCredentials cc)
  54. {
  55. if (cc == null) return;
  56.  
  57. cc.UserName.UserName = Options.WebserviceUsername;
  58. cc.UserName.Password = Options.AuthPassword;
  59.  
  60. cc.ClientCertificate.Certificate = Options.ClientCertificate;
  61. cc.ServiceCertificate.DefaultCertificate = Options.IbaCertificate;
  62.  
  63. cc.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
  64. }
  65.  
  66. private void ConfigureEndPoint(ServiceEndpoint endpoint)
  67. {
  68. endpoint.Contract.ProtectionLevel = ProtectionLevel.EncryptAndSign;
  69. endpoint.EndpointBehaviors.Add(new CustomEndpointBehavior());
  70.  
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement