public static void Configure(HttpBindingBase binding) { if (binding == null) throw new ArgumentNullException("binding"); binding.BypassProxyOnLocal = true; binding.SendTimeout = new TimeSpan(0, 0, 30, 0); // 30 minute timeout binding.MaxBufferSize = Int32.MaxValue; binding.MaxBufferPoolSize = 2147483647; binding.MaxReceivedMessageSize = Int32.MaxValue; binding.ReaderQuotas.MaxArrayLength = Int32.MaxValue; binding.ReaderQuotas.MaxBytesPerRead = Int32.MaxValue; binding.ReaderQuotas.MaxDepth = Int32.MaxValue; binding.ReaderQuotas.MaxNameTableCharCount = Int32.MaxValue; binding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue; }
private static void GetHttpBindingBaseDetails(HttpBindingBase binding, ref string name, ref string mode, ref string credentialType) { if (binding is BasicHttpContextBinding) { name = GetBindingName <BasicHttpContextBinding>(binding); } else if (binding is BasicHttpBinding) { name = GetBindingName <BasicHttpBinding>(binding); } else if (binding is NetHttpBinding) { name = GetBindingName <NetHttpBinding>(binding); } else if (binding is NetHttpsBinding) { name = GetBindingName <NetHttpsBinding>(binding); } else if (binding is BasicHttpsBinding) { name = GetBindingName <BasicHttpsBinding>(binding); } else { name = GetBindingName <HttpBindingBase>(binding); } BasicHttpSecurity basicHttpSecurity = binding.BasicHttpSecurity; mode = basicHttpSecurity?.Mode.ToString(); switch (basicHttpSecurity?.Mode) { case BasicHttpSecurityMode.None: credentialType = "N/A"; break; case BasicHttpSecurityMode.Transport: case BasicHttpSecurityMode.TransportCredentialOnly: credentialType = basicHttpSecurity.Transport?.ClientCredentialType.ToString(); break; case BasicHttpSecurityMode.Message: case BasicHttpSecurityMode.TransportWithMessageCredential: credentialType = $"{basicHttpSecurity.Transport?.ClientCredentialType.ToString()}+{basicHttpSecurity.Message?.ClientCredentialType.ToString()}"; break; } }
private void InitBindings(string url) { addr = new EndpointAddress(url); if (url.StartsWith("https://")) { binding = new BasicHttpsBinding(); } else { binding = new BasicHttpBinding(); } }
// BasicHttpContextBinding uses this hook to not emit AllowCookies internal virtual void InitializeAllowCookies(HttpBindingBase binding) { SetPropertyValueIfNotDefaultValue(ConfigurationStrings.AllowCookies, binding.AllowCookies); }
internal static bool TryCreate(BindingElementCollection elements, out Binding binding) { binding = null; if (elements.Count > 3) { return(false); } SecurityBindingElement securityElement = null; MessageEncodingBindingElement encoding = null; HttpTransportBindingElement transport = null; foreach (BindingElement element in elements) { if (element is SecurityBindingElement) { securityElement = element as SecurityBindingElement; } else if (element is TransportBindingElement) { transport = element as HttpTransportBindingElement; } else if (element is MessageEncodingBindingElement) { encoding = element as MessageEncodingBindingElement; } else { return(false); } } HttpsTransportBindingElement httpsTransport = transport as HttpsTransportBindingElement; if ((securityElement != null) && (httpsTransport != null) && (httpsTransport.RequireClientCertificate != TransportDefaults.RequireClientCertificate)) { return(false); } // process transport binding element UnifiedSecurityMode mode; HttpTransportSecurity transportSecurity = new HttpTransportSecurity(); if (!GetSecurityModeFromTransport(transport, transportSecurity, out mode)) { return(false); } if (encoding == null) { return(false); } // BasicHttpBinding only supports Soap11 if (!encoding.CheckEncodingVersion(EnvelopeVersion.Soap11)) { return(false); } BasicHttpSecurity security; if (!HttpBindingBase.TryCreateSecurity(securityElement, mode, transportSecurity, out security)) { return(false); } BasicHttpBinding basicHttpBinding = new BasicHttpBinding(security); basicHttpBinding.InitializeFrom(transport, encoding); // make sure all our defaults match if (!basicHttpBinding.IsBindingElementsMatch(transport, encoding)) { return(false); } binding = basicHttpBinding; return(true); }