private void InitializeFrom(HttpRelayTransportBindingElement transport, MessageEncodingBindingElement encoding, System.ServiceModel.Channels.ReliableSessionBindingElement session) { this.MaxBufferPoolSize = transport.MaxBufferPoolSize; this.MaxReceivedMessageSize = transport.MaxReceivedMessageSize; this.ProxyAddress = transport.ProxyAddress; this.UseDefaultWebProxy = transport.UseDefaultWebProxy; if (encoding is TextMessageEncodingBindingElement) { this.MessageEncoding = WSMessageEncoding.Text; TextMessageEncodingBindingElement textMessageEncodingBindingElement = (TextMessageEncodingBindingElement)encoding; this.TextEncoding = textMessageEncodingBindingElement.WriteEncoding; this.ReaderQuotas = textMessageEncodingBindingElement.ReaderQuotas; } else if (encoding is MtomMessageEncodingBindingElement) { this.messageEncoding = WSMessageEncoding.Mtom; MtomMessageEncodingBindingElement mtomMessageEncodingBindingElement = (MtomMessageEncodingBindingElement)encoding; this.TextEncoding = mtomMessageEncodingBindingElement.WriteEncoding; this.ReaderQuotas = mtomMessageEncodingBindingElement.ReaderQuotas; } this.reliableSession.Enabled = session != null; if (session != null) { this.session.InactivityTimeout = session.InactivityTimeout; this.session.Ordered = session.Ordered; } }
/// <summary> /// /// </summary> /// <returns></returns> private Binding GetDefaultBinding() { var mtom = new MtomMessageEncodingBindingElement(); mtom.MaxBufferSize = 1073741824; mtom.ReaderQuotas.MaxDepth = 256; mtom.ReaderQuotas.MaxStringContentLength = 1073741824; mtom.ReaderQuotas.MaxArrayLength = 1073741824; mtom.ReaderQuotas.MaxBytesPerRead = 1073741824; mtom.ReaderQuotas.MaxNameTableCharCount = 1073741824; var transport = new HttpsTransportBindingElement(); transport.MaxReceivedMessageSize = 1073741824; transport.MaxBufferSize = 1073741824; transport.MaxBufferPoolSize = 1073741824; transport.KeepAliveEnabled = false; var binding = new CustomBinding(mtom, transport); binding.CloseTimeout = TimeSpan.FromMinutes(5); binding.OpenTimeout = TimeSpan.FromMinutes(5); binding.ReceiveTimeout = TimeSpan.FromMinutes(20); binding.SendTimeout = TimeSpan.FromMinutes(20); return(binding); }
public override BindingElementCollection CreateBindingElements() { BindingElementCollection bindingElements = new BindingElementCollection(); bindingElements.Add(SecurityBindingElement.CreateUserNameOverTransportBindingElement()); MtomMessageEncodingBindingElement messageEncoding = new MtomMessageEncodingBindingElement(); messageEncoding.MessageVersion = MessageVersion.Soap11; bindingElements.Add(messageEncoding); HttpsTransportBindingElement transport = new HttpsTransportBindingElement(); transport.ManualAddressing = false; transport.AllowCookies = false; transport.AuthenticationScheme = AuthenticationSchemes.Anonymous; transport.BypassProxyOnLocal = false; transport.DecompressionEnabled = true; transport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; transport.KeepAliveEnabled = true; transport.ProxyAuthenticationScheme = AuthenticationSchemes.Anonymous; transport.TransferMode = TransferMode.Buffered; transport.UnsafeConnectionNtlmAuthentication = false; transport.UseDefaultWebProxy = true; bindingElements.Add(transport); return(bindingElements.Clone()); }
internal virtual void InitializeFrom(HttpTransportBindingElement transport, MessageEncodingBindingElement encoding) { this.BypassProxyOnLocal = transport.BypassProxyOnLocal; this.HostNameComparisonMode = transport.HostNameComparisonMode; this.MaxBufferPoolSize = transport.MaxBufferPoolSize; this.MaxBufferSize = transport.MaxBufferSize; this.MaxReceivedMessageSize = transport.MaxReceivedMessageSize; this.ProxyAddress = transport.ProxyAddress; this.TransferMode = transport.TransferMode; this.UseDefaultWebProxy = transport.UseDefaultWebProxy; this.httpTransport.WebSocketSettings = transport.WebSocketSettings; this.httpsTransport.WebSocketSettings = transport.WebSocketSettings; if (encoding is TextMessageEncodingBindingElement) { TextMessageEncodingBindingElement text = (TextMessageEncodingBindingElement)encoding; this.TextEncoding = text.WriteEncoding; this.ReaderQuotas = text.ReaderQuotas; } else if (encoding is MtomMessageEncodingBindingElement) { MtomMessageEncodingBindingElement mtom = (MtomMessageEncodingBindingElement)encoding; this.TextEncoding = mtom.WriteEncoding; this.ReaderQuotas = mtom.ReaderQuotas; } this.BasicHttpSecurity.Transport.ExtendedProtectionPolicy = transport.ExtendedProtectionPolicy; }
private static IEnumerable<BindingElement> CreateBindingElements(bool mtomEncoding, bool wsAddressing, bool securityToken, bool useTls){ var msgVer = wsAddressing ? MessageVersion.Soap12WSAddressing10 : MessageVersion.Soap12; if(mtomEncoding){ var encoding = new MtomMessageEncodingBindingElement(msgVer, Encoding.UTF8); encoding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue; encoding.MaxBufferSize = Int32.MaxValue; yield return encoding; }else{ var encoding = new TextMessageEncodingBindingElement(msgVer, Encoding.UTF8); encoding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue; //100 * 1024 * 1024 yield return encoding; } //var security = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); //security..M .MessageSecurityVersion = MessageSecurityVersion. HttpTransportBindingElement transport = CreateTransportBindingElement(useTls); transport.MaxReceivedMessageSize = Int32.MaxValue; //100L * 1024L * 1024L transport.KeepAliveEnabled = false; transport.MaxBufferSize = Int32.MaxValue; transport.ProxyAddress = null; transport.BypassProxyOnLocal = true; //transport.ManualAddressing = true transport.UseDefaultWebProxy = false; transport.TransferMode =TransferMode.StreamedResponse; //transport.TransferMode = TransfeStreamedResponse transport.AuthenticationScheme = AuthenticationSchemes.Basic; //transport.AuthenticationScheme = AuthenticationSchemes.Digest; yield return transport; }
private void InitializeFrom(HttpTransportBindingElement transport, MessageEncodingBindingElement encoding, System.ServiceModel.Channels.TransactionFlowBindingElement txFlow, System.ServiceModel.Channels.ReliableSessionBindingElement session) { this.BypassProxyOnLocal = transport.BypassProxyOnLocal; this.HostNameComparisonMode = transport.HostNameComparisonMode; this.MaxBufferPoolSize = transport.MaxBufferPoolSize; this.MaxReceivedMessageSize = transport.MaxReceivedMessageSize; this.ProxyAddress = transport.ProxyAddress; this.UseDefaultWebProxy = transport.UseDefaultWebProxy; if (encoding is TextMessageEncodingBindingElement) { this.MessageEncoding = WSMessageEncoding.Text; TextMessageEncodingBindingElement element = (TextMessageEncodingBindingElement)encoding; this.TextEncoding = element.WriteEncoding; this.ReaderQuotas = element.ReaderQuotas; } else if (encoding is MtomMessageEncodingBindingElement) { this.messageEncoding = WSMessageEncoding.Mtom; MtomMessageEncodingBindingElement element2 = (MtomMessageEncodingBindingElement)encoding; this.TextEncoding = element2.WriteEncoding; this.ReaderQuotas = element2.ReaderQuotas; } this.TransactionFlow = txFlow.Transactions; this.reliableSession.Enabled = session != null; if (session != null) { this.session.InactivityTimeout = session.InactivityTimeout; this.session.Ordered = session.Ordered; } }
private MessageEncoder GetEncoder(string contentType) { //todo: this method is not completely implemented. Look at comments bellow. if (Regex.IsMatch(contentType, "^multipart.*")) { var mtomBindingElement = new MtomMessageEncodingBindingElement(_factory.MessageVersion, Encoding.GetEncoding(_factory.CharSet)); var mtomFactory = mtomBindingElement.CreateMessageEncoderFactory(); return(mtomFactory.Encoder); //return _mtomEncoder; } else // if (...) { var textBindingElement = new TextMessageEncodingBindingElement(_factory.MessageVersion, Encoding.GetEncoding(_factory.CharSet)); //textBindingElement.ReaderQuotas.MaxStringContentLength = 65535; //textBindingElement.ReaderQuotas.MaxStringContentLength = textBindingElement.ReaderQuotas.MaxBytesPerRead = 65535; textBindingElement.ReaderQuotas.MaxStringContentLength = textBindingElement.ReaderQuotas.MaxBytesPerRead = 1024 * 1024 * 16; var textFactory = textBindingElement.CreateMessageEncoderFactory(); return(textFactory.Encoder); //return _textEncoder; } //else if (...) //{ // return new BinaryMessageEncodingBindingElement(); //} throw new NotSupportedException(string.Format("Unexpected content-type: \"{0}\".", contentType)); }
/// <summary> /// Initializes a new instance. /// </summary> public TextOrMtomEncoder(MessageVersion messageVersion, XmlDictionaryReaderQuotas readerQuotas, int maxReadPoolSize, int maxWritePoolSize, int maxBufferSize) { if (messageVersion is null) { throw new ArgumentNullException(nameof(messageVersion)); } if (readerQuotas is null) { throw new ArgumentNullException(nameof(readerQuotas)); } var textEncoderBindingElement = new TextMessageEncodingBindingElement(messageVersion, Encoding.UTF8); textEncoderBindingElement.MaxReadPoolSize = maxReadPoolSize; textEncoderBindingElement.MaxWritePoolSize = maxWritePoolSize; readerQuotas.CopyTo(textEncoderBindingElement.ReaderQuotas); text = textEncoderBindingElement.CreateMessageEncoderFactory().Encoder; if (messageVersion.Envelope != EnvelopeVersion.None) { var mtomEncoderBindingElement = new MtomMessageEncodingBindingElement(messageVersion, Encoding.UTF8); mtomEncoderBindingElement.MaxBufferSize = maxBufferSize; mtomEncoderBindingElement.MaxReadPoolSize = maxReadPoolSize; mtomEncoderBindingElement.MaxWritePoolSize = maxWritePoolSize; readerQuotas.CopyTo(mtomEncoderBindingElement.ReaderQuotas); mtom = mtomEncoderBindingElement.CreateMessageEncoderFactory().Encoder; } }
public static MessageEncodingBindingElement BuildMessageEncoding(MessageEncodingType encodingType, MessageSizeQuotas quotas) { if (encodingType == MessageEncodingType.Mtom) { MtomMessageEncodingBindingElement mtomEncodingBindingElement = new MtomMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, System.Text.Encoding.UTF8); mtomEncodingBindingElement.MaxBufferSize = quotas.MaxBufferSize; return(mtomEncodingBindingElement); } else { TextMessageEncodingBindingElement textMessageEncoding = new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, System.Text.UTF8Encoding.UTF8); textMessageEncoding.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max; //textMessageEncoding.MaxReadPoolSize = 16; //textMessageEncoding.MaxWritePoolSize = 16; //textMessageEncoding.ReaderQuotas.MaxDepth = int.MaxValue; //32; //textMessageEncoding.ReaderQuotas.MaxStringContentLength = int.MaxValue; //65536;// 8192; //textMessageEncoding.ReaderQuotas.MaxArrayLength = int.MaxValue; //16384; //textMessageEncoding.ReaderQuotas.MaxBytesPerRead = int.MaxValue; //4096; textMessageEncoding.ReaderQuotas.MaxNameTableCharCount = quotas.MaxBufferSize; return(textMessageEncoding); } }
private bool IsBindingElementsMatch(HttpRelayTransportBindingElement transport, MessageEncodingBindingElement encoding) { if (this.MessageEncoding == WSMessageEncoding.Text) { Type type = typeof(BindingElement); TextMessageEncodingBindingElement textMessageEncodingBindingElement = this.textEncoding; object[] objArray = new object[] { encoding }; if (!(bool)InvokeHelper.InvokeInstanceMethod(type, textMessageEncodingBindingElement, "IsMatch", objArray)) { return(false); } } else if (this.MessageEncoding == WSMessageEncoding.Mtom) { Type type1 = typeof(BindingElement); MtomMessageEncodingBindingElement mtomMessageEncodingBindingElement = this.mtomEncoding; object[] objArray1 = new object[] { encoding }; if (!(bool)InvokeHelper.InvokeInstanceMethod(type1, mtomMessageEncodingBindingElement, "IsMatch", objArray1)) { return(false); } } Type type2 = typeof(BindingElement); TransportBindingElement transportBindingElement = this.GetTransport(); object[] objArray2 = new object[] { transport }; if (!(bool)InvokeHelper.InvokeInstanceMethod(type2, transportBindingElement, "IsMatch", objArray2)) { return(false); } return(true); }
private void InitializeFrom(HttpTransportBindingElement transport, MessageEncodingBindingElement encoding) { this.BypassProxyOnLocal = transport.BypassProxyOnLocal; this.HostNameComparisonMode = transport.HostNameComparisonMode; this.MaxBufferPoolSize = transport.MaxBufferPoolSize; this.MaxBufferSize = transport.MaxBufferSize; this.MaxReceivedMessageSize = transport.MaxReceivedMessageSize; this.ProxyAddress = transport.ProxyAddress; this.TransferMode = transport.TransferMode; this.UseDefaultWebProxy = transport.UseDefaultWebProxy; this.Security.Transport.ExtendedProtectionPolicy = transport.ExtendedProtectionPolicy; if (encoding is TextMessageEncodingBindingElement) { this.MessageEncoding = WSMessageEncoding.Text; TextMessageEncodingBindingElement element = (TextMessageEncodingBindingElement)encoding; this.TextEncoding = element.WriteEncoding; this.ReaderQuotas = element.ReaderQuotas; } else if (encoding is MtomMessageEncodingBindingElement) { this.messageEncoding = WSMessageEncoding.Mtom; MtomMessageEncodingBindingElement element2 = (MtomMessageEncodingBindingElement)encoding; this.TextEncoding = element2.WriteEncoding; this.ReaderQuotas = element2.ReaderQuotas; } }
internal static void SyncUpEncodingBindingElementProperties(TextMessageEncodingBindingElement textEncoding, MtomMessageEncodingBindingElement mtomEncoding) { // textEncoding provides the backing store for ReaderQuotas and WriteEncoding, // we must ensure same values propogate to mtomEncoding textEncoding.ReaderQuotas.CopyTo(mtomEncoding.ReaderQuotas); mtomEncoding.WriteEncoding = textEncoding.WriteEncoding; }
protected internal override BindingElement CreateBindingElement() { MtomMessageEncodingBindingElement binding = new MtomMessageEncodingBindingElement(); this.ApplyConfiguration(binding); return(binding); }
private void InitializeFrom(HttpTransportBindingElement transport, MessageEncodingBindingElement encoding, TransactionFlowBindingElement txFlow, ReliableSessionBindingElement session) { this.HostNameComparisonMode = transport.HostNameComparisonMode; this.MaxBufferPoolSize = transport.MaxBufferPoolSize; this.MaxReceivedMessageSize = transport.MaxReceivedMessageSize; // this binding only supports Text and Mtom encoding if (encoding is TextMessageEncodingBindingElement) { this.MessageEncoding = WSMessageEncoding.Text; TextMessageEncodingBindingElement text = (TextMessageEncodingBindingElement)encoding; this.TextEncoding = text.WriteEncoding; this.ReaderQuotas = text.ReaderQuotas; } else if (encoding is MtomMessageEncodingBindingElement) { _messageEncoding = WSMessageEncoding.Mtom; MtomMessageEncodingBindingElement mtom = (MtomMessageEncodingBindingElement)encoding; this.TextEncoding = mtom.WriteEncoding; this.ReaderQuotas = mtom.ReaderQuotas; } this.TransactionFlow = txFlow.Transactions; _reliableSession.Enabled = session != null; //session if (session != null) { // only set properties that have standard binding manifestations _session.InactivityTimeout = session.InactivityTimeout; _session.Ordered = session.Ordered; } }
CreateBindingElements() { BindingElement tx = new TransactionFlowBindingElement(TransactionProtocol.WSAtomicTransactionOctober2004); SecurityBindingElement sec = CreateMessageSecurity(); BindingElement msg = null; MessageVersion msgver = MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.WSAddressing10); switch (MessageEncoding) { case WSMessageEncoding.Mtom: msg = new MtomMessageEncodingBindingElement(msgver, TextEncoding); break; case WSMessageEncoding.Text: msg = new TextMessageEncodingBindingElement(msgver, TextEncoding); break; default: throw new NotImplementedException("mhm, another WSMessageEncoding?"); } BindingElement tr = GetTransport(); List <BindingElement> list = new List <BindingElement> (); list.Add(tx); if (sec != null) { list.Add(sec); } list.Add(msg); if (tr != null) { list.Add(tr); } return(new BindingElementCollection(list.ToArray())); }
public static CustomBinding CreateCustomBinding() { ProxyUtils.ByPassCertificate(); WSMessageEncoding msgEncoding; msgEncoding = WSMessageEncoding.Mtom; BasicHttpSecurityMode sec = BasicHttpSecurityMode.TransportWithMessageCredential; BasicHttpBinding basicBinding = new BasicHttpBinding(sec) { Security = { Message = { ClientCredentialType = BasicHttpMessageCredentialType.UserName } }, MessageEncoding = msgEncoding, }; var elements = basicBinding.CreateBindingElements(); if (msgEncoding == WSMessageEncoding.Text) { TextMessageEncodingBindingElement te = elements.Find <TextMessageEncodingBindingElement>(); te.MessageVersion = MessageVersion.Soap12; } else { MtomMessageEncodingBindingElement te = elements.Find <MtomMessageEncodingBindingElement>(); te.MessageVersion = MessageVersion.Soap12; } CustomBinding customBinding = new CustomBinding(elements); return(customBinding); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="incoming"></param> protected AspNetCoreBinding() { this.transport = new AspNetCoreTransportBindingElement(); this.textEncoding = new TextMessageEncodingBindingElement(); this.textEncoding.MessageVersion = MessageVersion.Soap11; this.mtomEncoding = new MtomMessageEncodingBindingElement(); this.mtomEncoding.MessageVersion = MessageVersion.Soap11; }
public static FNCEWS40PortTypeClient ConfigureBinding(String user, String domain, String password, String uri) { BindingElementCollection bec = new BindingElementCollection(); // Everything gets treated as if it is username credentials until // right at the point of serialization. TransportSecurityBindingElement sbe = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); sbe.IncludeTimestamp = false; bec.Add(sbe); if (uri.IndexOf("SOAP") != -1) { // using the SOAP endpoint TextMessageEncodingBindingElement tme = new TextMessageEncodingBindingElement(); tme.MessageVersion = MessageVersion.Soap11; tme.ReaderQuotas.MaxDepth = 1024; tme.ReaderQuotas.MaxStringContentLength = 1024 * 1024; bec.Add(tme); } else { MtomMessageEncodingBindingElement mme = new MtomMessageEncodingBindingElement(); mme.MessageVersion = MessageVersion.Soap12; mme.ReaderQuotas.MaxDepth = 1024; mme.ReaderQuotas.MaxStringContentLength = 1024 * 1024; mme.MaxBufferSize = 2147483647; bec.Add(mme); } HttpsTransportBindingElement tbe = new HttpsTransportBindingElement(); tbe.MaxReceivedMessageSize = 2147483647; tbe.MaxBufferSize = 2147483647; bec.Add(tbe); CustomBinding binding = new CustomBinding(bec); binding.ReceiveTimeout = new TimeSpan(TimeSpan.TicksPerDay); // 100 nanonsecond units, make it 1 day binding.SendTimeout = binding.ReceiveTimeout; EndpointAddress endpoint = new EndpointAddress(uri); port = new FNCEWS40PortTypeClient(binding, endpoint); port.ClientCredentials.UserName.UserName = user; port.ClientCredentials.UserName.Password = password; // set up the Localization header, minus the locale. We assume // the timezone cannot change between calls, but that the locale // may. localization = new Localization(); localization.Timezone = GetTimezone(); return(port); }
private void Initialize() { this.httpTransport = new HttpTransportBindingElement(); this.httpsTransport = new HttpsTransportBindingElement(); this.messageEncoding = WSMessageEncoding.Text; this.textEncoding = new TextMessageEncodingBindingElement(); this.textEncoding.MessageVersion = MessageVersion.Soap11; this.mtomEncoding = new MtomMessageEncodingBindingElement(); this.mtomEncoding.MessageVersion = MessageVersion.Soap11; }
public MyReadMtomWriteXmlEncodingBindingElement(MtomMessageEncodingBindingElement mtomBE, TextMessageEncodingBindingElement textBE) { if (textBE.MessageVersion != mtomBE.MessageVersion) { throw new ArgumentException("MessageVersion of the two inner encodings must be the same."); } this.mtomBE = mtomBE; this.textBE = textBE; }
private void Initialize() { _securityBindingElement = CreateSecurityBindingElement(); _reliableSessionBindingElement = CreateReliableSessionBindingElement(); _mtomEncodingBindingElement = CreateMtomEncodingBindingElement(); _httpsTransportBindingElement = CreateHttpsTransportBindingElement() as HttpsTransportBindingElement; }
private static FirmaDigitale.FirmaDigitalePortTypeClient createClient(string endPoindAddress) { #region WCFRuntimeSettings var binding = new CustomBinding(); binding.Name = "FirmaDigitalePortTypeEndpoint2BindingMIO"; XmlDictionaryReaderQuotas readquota = new XmlDictionaryReaderQuotas { MaxStringContentLength = 100000000, MaxArrayLength = 100000000, MaxBytesPerRead = 524288 }; MtomMessageEncodingBindingElement mtomEconding = new MtomMessageEncodingBindingElement { MaxReadPoolSize = 640, MaxWritePoolSize = 160, MessageVersion = MessageVersion.Soap12, MaxBufferSize = 2147483647, }; mtomEconding.ReaderQuotas.MaxArrayLength = 100000000; mtomEconding.ReaderQuotas.MaxBytesPerRead = 524288; mtomEconding.ReaderQuotas.MaxStringContentLength = 5242880; HttpsTransportBindingElement httpsTransposport = new HttpsTransportBindingElement { ManualAddressing = false, MaxBufferPoolSize = 524288, MaxBufferSize = 2147483647, MaxReceivedMessageSize = 2147483647, AllowCookies = false, AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous, BypassProxyOnLocal = false, HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.StrongWildcard, KeepAliveEnabled = true, ProxyAuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous, Realm = "", TransferMode = System.ServiceModel.TransferMode.Streamed, UnsafeConnectionNtlmAuthentication = false, UseDefaultWebProxy = false, RequireClientCertificate = true }; binding.Elements.Add(mtomEconding); binding.Elements.Add(httpsTransposport); EndpointAddress epAddre = new EndpointAddress(endPoindAddress); ContractDescription cd = new ContractDescription("FirmaDigitale.FirmaDigitalePortType"); FirmaDigitale.FirmaDigitalePortTypeClient channel = new FirmaDigitale.FirmaDigitalePortTypeClient(binding, epAddre); string certFindData = "client.firma.s.pitre"; channel.ClientCredentials.ClientCertificate.SetCertificate(System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine, System.Security.Cryptography.X509Certificates.StoreName.My, System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName, certFindData); channel.Endpoint.Behaviors.Add(new MaxFaultSizeBehavior(2147483647)); return(channel); }
public AssertEncryptionHttpBinding(AssertEncryptionHttpSecurityMode securityMode) { this.SecurityMode = securityMode; this.MessageEncoding = WSMessageEncoding.Text; this.TextEncoding = new TextMessageEncodingBindingElement(); this.MtomEncoding = new MtomMessageEncodingBindingElement(); this.MessageVersion = MessageVersion.Soap12WSAddressing10; this.Transport = new AssertEncryptionHttpTransportBindingElement(); }
private void Initialize() { HttpTransport = new HttpTransportBindingElement(); HttpsTransport = new HttpsTransportBindingElement(); _session = new ReliableSessionBindingElement(true); _textEncoding = new TextMessageEncodingBindingElement(); _textEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; _mtomEncoding = new MtomMessageEncodingBindingElement(); _mtomEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; _reliableSession = new OptionalReliableSession(_session); }
protected internal override void InitializeFrom(BindingElement bindingElement) { base.InitializeFrom(bindingElement); MtomMessageEncodingBindingElement element = (MtomMessageEncodingBindingElement)bindingElement; this.MessageVersion = element.MessageVersion; this.WriteEncoding = element.WriteEncoding; this.MaxReadPoolSize = element.MaxReadPoolSize; this.MaxWritePoolSize = element.MaxWritePoolSize; this.ReaderQuotas.InitializeFrom(element.ReaderQuotas); this.MaxBufferSize = element.MaxBufferSize; }
internal HttpBindingBase() { this.httpTransport = new HttpTransportBindingElement(); this.httpsTransport = new HttpsTransportBindingElement(); this.textEncoding = new TextMessageEncodingBindingElement(); this.textEncoding.MessageVersion = MessageVersion.Soap11; this.mtomEncoding = new MtomMessageEncodingBindingElement(); this.mtomEncoding.MessageVersion = MessageVersion.Soap11; this.httpsTransport.WebSocketSettings = this.httpTransport.WebSocketSettings; }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); MtomMessageEncodingBindingElement element = (MtomMessageEncodingBindingElement)bindingElement; element.MessageVersion = this.MessageVersion; element.WriteEncoding = this.WriteEncoding; element.MaxReadPoolSize = this.MaxReadPoolSize; element.MaxWritePoolSize = this.MaxWritePoolSize; this.ReaderQuotas.ApplyConfiguration(element.ReaderQuotas); element.MaxBufferSize = this.MaxBufferSize; }
protected internal override void InitializeFrom(BindingElement bindingElement) { base.InitializeFrom(bindingElement); MtomMessageEncodingBindingElement binding = (MtomMessageEncodingBindingElement)bindingElement; SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MessageVersion, binding.MessageVersion); SetPropertyValueIfNotDefaultValue(ConfigurationStrings.WriteEncoding, binding.WriteEncoding); SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReadPoolSize, binding.MaxReadPoolSize); SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxWritePoolSize, binding.MaxWritePoolSize); this.ReaderQuotas.InitializeFrom(binding.ReaderQuotas); SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferSize, binding.MaxBufferSize); }
internal HttpBindingBase() { _httpTransport = new HttpTransportBindingElement(); _httpsTransport = new HttpsTransportBindingElement(); _httpsTransport.WebSocketSettings = _httpTransport.WebSocketSettings; _textEncoding = new TextMessageEncodingBindingElement(); _textEncoding.MessageVersion = MessageVersion.Soap11; _mtomEncoding = new MtomMessageEncodingBindingElement(); _mtomEncoding.MessageVersion = MessageVersion.Soap11; }
private void Initialize() { _securityBindingElement = CreateSecurityBindingElement(); //_securityBindingElement = CreateTransportSecurityBindingElement(); _reliableSessionBindingElement = CreateReliableSessionBindingElement(); //binding.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, Encoding.UTF8)); _mtomEncodingBindingElement = CreateMtomEncodingBindingElement(); _httpsTransportBindingElement = CreateHttpsTransportBindingElement() as HttpsTransportBindingElement; }
internal HttpBindingBase() { _httpTransport = new HttpTransportBindingElement(); _httpsTransport = new HttpsTransportBindingElement(); TextMessageEncodingBindingElement = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.Soap11 }; MtomMessageEncodingBindingElement = new MtomMessageEncodingBindingElement { MessageVersion = MessageVersion.Soap11 }; }
private void Initialize() { this.httpTransport = new HttpTransportBindingElement(); this.httpsTransport = new HttpsTransportBindingElement(); this.messageEncoding = WSMessageEncoding.Text; this.txFlow = GetDefaultTransactionFlowBindingElement(); this.session = new System.ServiceModel.Channels.ReliableSessionBindingElement(true); this.textEncoding = new TextMessageEncodingBindingElement(); this.textEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; this.mtomEncoding = new MtomMessageEncodingBindingElement(); this.mtomEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; this.reliableSession = new OptionalReliableSession(this.session); }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); MtomMessageEncodingBindingElement binding = (MtomMessageEncodingBindingElement)bindingElement; binding.MessageVersion = this.MessageVersion; binding.WriteEncoding = this.WriteEncoding; binding.MaxReadPoolSize = this.MaxReadPoolSize; binding.MaxWritePoolSize = this.MaxWritePoolSize; #pragma warning suppress 56506 //[....]; base.ApplyConfiguration() checks for 'binding' being null this.ReaderQuotas.ApplyConfiguration(binding.ReaderQuotas); binding.MaxBufferSize = this.MaxBufferSize; }
private void Initialize() { HttpTransport = new HttpTransportBindingElement(); HttpsTransport = new HttpsTransportBindingElement(); _textEncoding = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.Soap12WSAddressing10 }; _mtomEncoding = new MtomMessageEncodingBindingElement { MessageVersion = MessageVersion.Soap12WSAddressing10 }; }
void Initialize() { httpTransport = new HttpTransportBindingElement(); httpsTransport = new HttpsTransportBindingElement(); messageEncoding = WSHttpBindingDefaults.MessageEncoding; txFlow = GetDefaultTransactionFlowBindingElement(); session = new ReliableSessionBindingElement(true); textEncoding = new TextMessageEncodingBindingElement(); textEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; mtomEncoding = new MtomMessageEncodingBindingElement(); mtomEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; reliableSession = new OptionalReliableSession(session); }
private MtomMessageEncodingBindingElement CreateMtomEncodingBindingElement() { MtomMessageEncodingBindingElement mtomEncodingBindingElement = new MtomMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, Encoding.UTF8); //mtomEncodingBindingElement.MaxBufferSize = 20000000; //mtomEncodingBindingElement.MaxReadPoolSize = 20000000; //mtomEncodingBindingElement.MaxWritePoolSize = 20000000; //mtomEncodingBindingElement.ReaderQuotas.MaxStringContentLength = 200000000; //mtomEncodingBindingElement.ReaderQuotas.MaxArrayLength = 200000000; //mtomEncodingBindingElement.ReaderQuotas.MaxBytesPerRead = 200000000; //mtomEncodingBindingElement.ReaderQuotas.MaxDepth = 200000000; //mtomEncodingBindingElement.ReaderQuotas.MaxNameTableCharCount = 200000000; return mtomEncodingBindingElement; }
static int SizeOfMtomMessage(Message message) { // Create an MTOM encoder MessageEncodingBindingElement element = new MtomMessageEncodingBindingElement(); MessageEncoderFactory factory = element.CreateMessageEncoderFactory(); MessageEncoder encoder = factory.Encoder; // Write the message and return its length MemoryStream stream = new MemoryStream(); encoder.WriteMessage(message, stream); int size = (int)stream.Length; stream.Close(); message.Close(); return size; }
public static void Main() { string baseAddress = "http://" + Environment.MachineName + ":8000/Service"; ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddress)); host.AddServiceEndpoint(typeof(ITest), GetServerBinding(), ""); host.Open(); Console.WriteLine("Host opened"); foreach (bool useMtom in new bool[] { false, true }) { MessageEncodingBindingElement clientEncoding; if (useMtom) { clientEncoding = new MtomMessageEncodingBindingElement(); } else { clientEncoding = new TextMessageEncodingBindingElement(); } CustomBinding binding = new CustomBinding(clientEncoding, new HttpTransportBindingElement()); ChannelFactory<ITest> factory = new ChannelFactory<ITest>(binding, new EndpointAddress(baseAddress)); ITest proxy = factory.CreateChannel(); byte[] fileContents = new byte[10000]; for (int i = 0; i < fileContents.Length; i++) { fileContents[i] = (byte)('a' + (i % 26)); } using (new OperationContextScope((IContextChannel)proxy)) { proxy.Echo(new MyDC { Name = "FileName.bin", Contents = fileContents }); HttpResponseMessageProperty responseProperty; responseProperty = (HttpResponseMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpResponseMessageProperty.Name]; Console.WriteLine("In client, response content-type: {0}", responseProperty.Headers[HttpResponseHeader.ContentType]); } ((IClientChannel)proxy).Close(); factory.Close(); } Console.Write("Press ENTER to close the host"); Console.ReadLine(); host.Close(); }
private static PrivateClient NewClient(string uri, PSCredential credential) { CustomBinding custBinding = new CustomBinding(); MtomMessageEncodingBindingElement elmtom = new MtomMessageEncodingBindingElement(); elmtom.MaxWritePoolSize = 2147483647; elmtom.MaxBufferSize = 2147483647; elmtom.MessageVersion = MessageVersion.Soap12; var ssbe = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); ssbe.AllowInsecureTransport = true; ssbe.IncludeTimestamp = false; ssbe.MessageSecurityVersion = MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10; var htt = new HttpTransportBindingElement(); htt.MaxBufferPoolSize = 2147483647; htt.MaxReceivedMessageSize = 2147483647; htt.MaxBufferSize = 2147483647; EndpointAddress n = new EndpointAddress(uri); custBinding.Elements.Add(ssbe); custBinding.Elements.Add(elmtom); custBinding.Elements.Add(htt); var client = new PrivateClient(custBinding, n); if (credential != null) { if (client.ClientCredentials != null) { client.ClientCredentials.UserName.UserName = credential.GetNetworkCredential().UserName; client.ClientCredentials.UserName.Password = SecureStringToString(credential.Password); } } else { if (client.ClientCredentials != null) { // client.ClientCredentials.UserName.UserName = "******"; //client.ClientCredentials.UserName.Password = "******"; } } return client; }
public static ServiceProxies.IOService.NanoIOSystemAPIInterfaceClient GetIOService(string url = null) { /* if (String.IsNullOrEmpty(url)) url = CONST.EntryPointUrl; string ioServiceUrl = GetEntryPointService(url).GetServiceUri(ServiceNames.Data.ToString()); var address = new EndpointAddress(ioServiceUrl); */ var address = new EndpointAddress(Config.AppSettings[STORAGE_CONFIG_NAME]); var mtomBind = new MtomMessageEncodingBindingElement(); mtomBind.MessageVersion = MessageVersion.Soap11; var httpBind = new HttpTransportBindingElement(); var binding = new CustomBinding(new BindingElement[] { mtomBind, httpBind }); var service = new ServiceProxies.IOService.NanoIOSystemAPIInterfaceClient(binding, address); return service; }
CreateBindingElements () { BindingElement tx = new TransactionFlowBindingElement (TransactionProtocol.WSAtomicTransactionOctober2004); SecurityBindingElement sec = CreateMessageSecurity (); BindingElement msg = null; MessageVersion msgver = MessageVersion.CreateVersion (EnvelopeVersion, AddressingVersion.WSAddressing10); switch (MessageEncoding) { case WSMessageEncoding.Mtom: msg = new MtomMessageEncodingBindingElement (msgver, TextEncoding); break; case WSMessageEncoding.Text: msg = new TextMessageEncodingBindingElement (msgver, TextEncoding); break; default: throw new NotImplementedException ("mhm, another WSMessageEncoding?"); } BindingElement tr = GetTransport (); List<BindingElement> list = new List<BindingElement> (); list.Add (tx); // it is always added. if (sec != null) list.Add (sec); list.Add (msg); if (tr != null) list.Add (tr); // FIXME: add ReliableSessionBindingElement return new BindingElementCollection (list.ToArray ()); }
private void Initialize() { lock (this) { if (!_isInitialized) { _transport = new RabbitMQTransportBindingElement(); _textEncoding = new TextMessageEncodingBindingElement(); _mtomEncoding = new MtomMessageEncodingBindingElement(); _binaryEncoding = new BinaryMessageEncodingBindingElement(); _duplex = new CompositeDuplexBindingElement(); _isInitialized = true; } } }
private object InitServiceObject(string serviceKey) { object portObject = null; CustomBinding binding; string wcfBinding = session.GetValue(SessionParameter.WebServicesWCFBinding) as string; if (wcfBinding != null) { binding = new CustomBinding(wcfBinding); } else { long messageSize = session.GetValue(SessionParameter.MessageSize, 4 * 1024 * 1024); List<BindingElement> elements = new List<BindingElement>(); SecurityBindingElement securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); securityElement.SecurityHeaderLayout = SecurityHeaderLayout.LaxTimestampFirst; string enableUnsecuredResponseFlag = session.GetValue(SessionParameter.WebServicesEnableUnsecuredResponse) as string; if (enableUnsecuredResponseFlag != null && enableUnsecuredResponseFlag.ToLower().Equals("true")) { PropertyInfo eur = securityElement.GetType().GetProperty("EnableUnsecuredResponse"); if (eur != null) { eur.GetSetMethod().Invoke(securityElement, new object[] { true }); } } elements.Add(securityElement); MtomMessageEncodingBindingElement mtomElement = new MtomMessageEncodingBindingElement(); mtomElement.MessageVersion = MessageVersion.Soap11; mtomElement.MaxBufferSize = (messageSize > Int32.MaxValue ? Int32.MaxValue : (int)messageSize); elements.Add(mtomElement); HttpsTransportBindingElement transportElement = new HttpsTransportBindingElement(); transportElement.MaxReceivedMessageSize = messageSize; transportElement.TransferMode = TransferMode.Streamed; transportElement.AllowCookies = true; elements.Add(transportElement); binding = new CustomBinding(elements); string openTimeOut = session.GetValue(SessionParameter.WebServicesOpenTimeout) as string; if (openTimeOut != null) { binding.OpenTimeout = TimeSpan.Parse(openTimeOut); } string closeTimeOut = session.GetValue(SessionParameter.WebServicesCloseTimeout) as string; if (closeTimeOut != null) { binding.CloseTimeout = TimeSpan.Parse(closeTimeOut); } string sendTimeOut = session.GetValue(SessionParameter.WebServicesSendTimeout) as string; if (sendTimeOut != null) { binding.SendTimeout = TimeSpan.Parse(sendTimeOut); } string receiveTimeOut = session.GetValue(SessionParameter.WebServicesReceiveTimeout) as string; if (receiveTimeOut != null) { binding.ReceiveTimeout = TimeSpan.Parse(receiveTimeOut); } } if (serviceKey == SessionParameter.WebServicesRepositoryService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesRepositoryService) as string; portObject = new RepositoryServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesNavigationService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesNavigationService) as string; portObject = new NavigationServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesObjectService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesObjectService) as string; portObject = new ObjectServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesVersioningService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesVersioningService) as string; portObject = new VersioningServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesDiscoveryService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesDiscoveryService) as string; portObject = new DiscoveryServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesRelationshipService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesRelationshipService) as string; portObject = new RelationshipServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesMultifilingService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesMultifilingService) as string; portObject = new MultiFilingServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesPolicyService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesPolicyService) as string; portObject = new PolicyServicePortClient(binding, new EndpointAddress(wsdlUrl)); } else if (serviceKey == SessionParameter.WebServicesAclService) { string wsdlUrl = session.GetValue(SessionParameter.WebServicesAclService) as string; portObject = new ACLServicePortClient(binding, new EndpointAddress(wsdlUrl)); } IAuthenticationProvider authenticationProvider = session.GetAuthenticationProvider(); if (authenticationProvider != null) { authenticationProvider.Authenticate(portObject); } return portObject; }
/// <summary> /// /// </summary> /// <returns></returns> private Binding GetDefaultBinding() { var mtom = new MtomMessageEncodingBindingElement(); mtom.MaxBufferSize = 1073741824; mtom.ReaderQuotas.MaxDepth = 256; mtom.ReaderQuotas.MaxStringContentLength = 1073741824; mtom.ReaderQuotas.MaxArrayLength = 1073741824; mtom.ReaderQuotas.MaxBytesPerRead = 1073741824; mtom.ReaderQuotas.MaxNameTableCharCount = 1073741824; var transport = new HttpsTransportBindingElement(); transport.MaxReceivedMessageSize = 1073741824; transport.MaxBufferSize = 1073741824; transport.MaxBufferPoolSize = 1073741824; transport.KeepAliveEnabled = false; var binding = new CustomBinding(mtom, transport); binding.CloseTimeout = TimeSpan.FromMinutes(5); binding.OpenTimeout = TimeSpan.FromMinutes(5); binding.ReceiveTimeout = TimeSpan.FromMinutes(20); binding.SendTimeout = TimeSpan.FromMinutes(20); return binding; }
private void Initialize() { this.httpTransport = new HttpTransportBindingElement(); this.messageEncoding = WSMessageEncoding.Text; this.txFlow = GetDefaultTransactionFlowBindingElement(); this.session = new ReliableSessionBindingElement(true); this.textEncoding = new TextMessageEncodingBindingElement(); this.textEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; this.mtomEncoding = new MtomMessageEncodingBindingElement(); this.mtomEncoding.MessageVersion = MessageVersion.Soap12WSAddressing10; this.compositeDuplex = new CompositeDuplexBindingElement(); this.reliableSession = new System.ServiceModel.ReliableSession(this.session); this.oneWay = new OneWayBindingElement(); }
private MtomMessageEncodingBindingElement CreateMtomEncodingBindingElement() { MtomMessageEncodingBindingElement mtomEncodingBindingElement = new MtomMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, Encoding.UTF8); return mtomEncodingBindingElement; }
public override BindingElementCollection CreateBindingElements() { BindingElementCollection bindingElements = new BindingElementCollection(); bindingElements.Add(SecurityBindingElement.CreateUserNameOverTransportBindingElement()); MtomMessageEncodingBindingElement messageEncoding = new MtomMessageEncodingBindingElement(); messageEncoding.MessageVersion = MessageVersion.Soap11; bindingElements.Add(messageEncoding); HttpsTransportBindingElement transport = new HttpsTransportBindingElement(); transport.ManualAddressing = false; transport.AllowCookies = false; transport.AuthenticationScheme = AuthenticationSchemes.Anonymous; transport.BypassProxyOnLocal = false; transport.DecompressionEnabled = true; transport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; transport.KeepAliveEnabled = true; transport.ProxyAuthenticationScheme = AuthenticationSchemes.Anonymous; transport.TransferMode = TransferMode.Buffered; transport.UnsafeConnectionNtlmAuthentication = false; transport.UseDefaultWebProxy = true; bindingElements.Add(transport); return bindingElements.Clone(); }
internal static void SyncUpEncodingBindingElementProperties(TextMessageEncodingBindingElement textEncoding, MtomMessageEncodingBindingElement mtomEncoding) { textEncoding.ReaderQuotas.CopyTo(mtomEncoding.ReaderQuotas); mtomEncoding.WriteEncoding = textEncoding.WriteEncoding; }
protected internal override BindingElement CreateBindingElement() { MtomMessageEncodingBindingElement bindingElement = new MtomMessageEncodingBindingElement(); this.ApplyConfiguration(bindingElement); return bindingElement; }
public MtomMessageEncoderFactory ( MtomMessageEncodingBindingElement owner) { this.owner = owner; encoder = new MtomMessageEncoder (this); }