public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection bindingElementsCollection = new BindingElementCollection();
     bindingElementsCollection.Add(this.messageEncodingBindingElement);
     bindingElementsCollection.Add(this.transportBindingElement);
     return bindingElementsCollection.Clone();
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection();
     elements.Add(encoding);
     elements.Add(transport);
     return elements;
 }
Пример #3
0
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection col = new BindingElementCollection();
     col.Add(be);
     col.Add(tcpbe);
     return col;
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection {
         this.txFlow
     };
     if (this.reliableSession.Enabled)
     {
         elements.Add(this.session);
     }
     SecurityBindingElement item = this.CreateMessageSecurity();
     if (item != null)
     {
         elements.Add(item);
     }
     WSMessageEncodingHelper.SyncUpEncodingBindingElementProperties(this.textEncoding, this.mtomEncoding);
     if (this.MessageEncoding == WSMessageEncoding.Text)
     {
         elements.Add(this.textEncoding);
     }
     else if (this.MessageEncoding == WSMessageEncoding.Mtom)
     {
         elements.Add(this.mtomEncoding);
     }
     elements.Add(this.GetTransport());
     return elements.Clone();
 }
		public CustomPolicyConversionContext (WS.Binding binding, ServiceEndpoint endpoint)
			: base (endpoint)
		{
			this.binding = binding;
			assertions = new PolicyAssertionCollection ();
			binding_elements = ((CustomBinding)endpoint.Binding).Elements;
		}
Пример #6
0
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection();
     elements.Add(this.encodingElement);
     elements.Add(this.transportElement);
     return elements.Clone();
 }
 internal static bool TryCreate(BindingElementCollection bindingElements, out Binding binding)
 {
     if (bindingElements == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
     }
     binding = null;
     ContextBindingElement element = bindingElements.Find<ContextBindingElement>();
     if (element != null)
     {
         Binding binding2;
         BindingElementCollection elements = new BindingElementCollection(bindingElements);
         elements.Remove<ContextBindingElement>();
         if (WSHttpBindingBase.TryCreate(elements, out binding2))
         {
             bool allowCookies = ((WSHttpBinding) binding2).AllowCookies;
             if ((allowCookies && (element.ContextExchangeMechanism == ContextExchangeMechanism.HttpCookie)) || (!allowCookies && (element.ContextExchangeMechanism == ContextExchangeMechanism.ContextSoapHeader)))
             {
                 WSHttpContextBinding binding3 = new WSHttpContextBinding((WSHttpBinding) binding2) {
                     ContextProtectionLevel = element.ProtectionLevel,
                     ContextManagementEnabled = element.ContextManagementEnabled
                 };
                 binding = binding3;
             }
         }
     }
     return (binding != null);
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection {
         this.txFlow,
         this.session
     };
     SecurityBindingElement item = this.CreateMessageSecurity();
     if (item != null)
     {
         elements.Add(item);
     }
     elements.Add(this.compositeDuplex);
     elements.Add(this.oneWay);
     WSMessageEncodingHelper.SyncUpEncodingBindingElementProperties(this.textEncoding, this.mtomEncoding);
     if (this.MessageEncoding == WSMessageEncoding.Text)
     {
         elements.Add(this.textEncoding);
     }
     else if (this.MessageEncoding == WSMessageEncoding.Mtom)
     {
         elements.Add(this.mtomEncoding);
     }
     elements.Add(this.httpTransport);
     return elements.Clone();
 }
 protected override void AddBindingElements(BindingElementCollection bindingElements)
 {
     base.AddCompositeDuplexBindingElement(bindingElements, this.clientBaseAddress);
     base.AddOneWayBindingElement(bindingElements);
     base.AddTextEncodingBindingElement(bindingElements);
     base.AddInteropHttpsTransportBindingElement(bindingElements);
 }
 protected override void AddBindingElements(BindingElementCollection bindingElements)
 {
     bindingElements.Add(new BinaryMessageEncodingBindingElement());
     base.AddTransactionFlowBindingElement(bindingElements);
     base.AddWindowsStreamSecurityBindingElement(bindingElements);
     base.AddNamedPipeBindingElement(bindingElements);
 }
Пример #11
0
 public override BindingElementCollection CreateBindingElements()
 {
     var res = new BindingElementCollection();
     res.Add(new TextMessageEncodingBindingElement() { MessageVersion = this.messageVersion });
     res.Add(SecurityBindingElement.CreateUserNameOverTransportBindingElement());
     res.Add(new AutoSecuredHttpTransportElement());
     return res;
 }
Пример #12
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();

            elements.Add(this.encoding);
            elements.Add(this.transport);
            return(elements);
        }
Пример #13
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection col = new BindingElementCollection();

            col.Add(be);
            col.Add(tcpbe);
            return(col);
        }
Пример #14
0
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elemens = new BindingElementCollection();
     elemens.Add(new TextMessageEncodingBindingElement());
     elemens.Add(new MyBindingElement());
     elemens.Add(new HttpTransportBindingElement());
     return elemens.Clone();
 }
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            Microsoft.ServiceBus.UnifiedSecurityMode unifiedSecurityMode;
            NetOnewayRelaySecurity netOnewayRelaySecurity;
            bool flag;

            binding = null;
            if (elements.Count > 3)
            {
                return(false);
            }
            SecurityBindingElement securityBindingElement = null;
            BinaryMessageEncodingBindingElement  binaryMessageEncodingBindingElement  = null;
            RelayedOnewayTransportBindingElement relayedOnewayTransportBindingElement = null;

            using (IEnumerator <BindingElement> enumerator = elements.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    BindingElement current = enumerator.Current;
                    if (current is SecurityBindingElement)
                    {
                        securityBindingElement = current as SecurityBindingElement;
                    }
                    else if (current is TransportBindingElement)
                    {
                        relayedOnewayTransportBindingElement = current as RelayedOnewayTransportBindingElement;
                    }
                    else if (!(current is MessageEncodingBindingElement))
                    {
                        flag = false;
                        return(flag);
                    }
                    else
                    {
                        binaryMessageEncodingBindingElement = current as BinaryMessageEncodingBindingElement;
                    }
                }
                unifiedSecurityMode = (!relayedOnewayTransportBindingElement.TransportProtectionEnabled ? Microsoft.ServiceBus.UnifiedSecurityMode.None | Microsoft.ServiceBus.UnifiedSecurityMode.Message : Microsoft.ServiceBus.UnifiedSecurityMode.Transport | Microsoft.ServiceBus.UnifiedSecurityMode.TransportWithMessageCredential);
                if (binaryMessageEncodingBindingElement == null)
                {
                    return(false);
                }
                if (!NetOnewayRelayBinding.TryCreateSecurity(securityBindingElement, relayedOnewayTransportBindingElement.RelayClientAuthenticationType, unifiedSecurityMode, out netOnewayRelaySecurity))
                {
                    return(false);
                }
                NetOnewayRelayBinding netOnewayRelayBinding = new NetOnewayRelayBinding(netOnewayRelaySecurity);
                NetOnewayRelayBinding.InitializeFrom(relayedOnewayTransportBindingElement, binaryMessageEncodingBindingElement);
                if (!netOnewayRelayBinding.IsBindingElementsMatch(relayedOnewayTransportBindingElement, binaryMessageEncodingBindingElement))
                {
                    return(false);
                }
                binding = netOnewayRelayBinding;
                return(true);
            }
            return(flag);
        }
Пример #16
0
        public override BindingElementCollection CreateBindingElements()
        {
            var transport =
                _useHttps
                    ? new HttpsTransportBindingElement()
                    : new HttpTransportBindingElement();

            if (_maxReceivedMessageSize.HasValue)
            {
                transport.MaxReceivedMessageSize =
                    _maxReceivedMessageSize.Value;
            }

            var encoding = new TextMessageEncodingBindingElement();

            // [OIO IDWS SOAP 1.1] requires SOAP 1.2 and WS-Adressing 1.0
            encoding.MessageVersion = MessageVersion.Soap12WSAddressing10;

            // AlwaysToInitiator is required by the [OIO IDWS SOAP 1.1] profile. This specifies that the server certificate must be embedded in the response.
            var recipientTokenParameters = new X509SecurityTokenParameters(
                X509KeyIdentifierClauseType.Any,
                SecurityTokenInclusionMode.AlwaysToInitiator);

            var initiatorTokenParameters =
                new CustomizedIssuedSecurityTokenParameters(
                    "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"
                    );

            initiatorTokenParameters.UseStrTransform = true;

            var asymmetric = new AsymmetricSecurityBindingElement(recipientTokenParameters, initiatorTokenParameters);

            // Must be true in order for client to accept embedded server certificates instead of references. This is required by the [OIO IDWS SOAP 1.1] profile.
            // However, the client must still specify the server certificate explicitly.
            // Have not figured out how the client can use the embedded server certificate and make trust to it through a CA certificate and a CN (Common Name). This way the client should not need the server certificate.
            asymmetric.AllowSerializedSigningTokenOnReply = true;

            // No need for derived keys when both parties has a certificate. Also OIO-IDWS-SOAP does not make use of derived keys.
            asymmetric.SetKeyDerivation(false);

            // Include token (encrypted assertion from NemLog-in STS) in signature
            asymmetric.ProtectTokens = true;

            // Specifies that WCF can send and receive unsecured responses to secured requests.
            // Concrete this means that SOAP faults are send unencrypted. [OIO IDWS SOAP 1.1] does not specify whether or not SOAP faults can be encrypted but it looks like they should not be encrypted.
            // If encrypted the client is not able to process the encrypted SOAP fault if client is not setup correctly.
            // setting EnableUnsecuredResponse to true makes normal responses unsigned and processed by the client without error. This is not what we want :)
            //asymmetric.EnableUnsecuredResponse = true;

            var elements = new BindingElementCollection();

            elements.Add(asymmetric);
            elements.Add(encoding);
            elements.Add(transport);

            return(elements);
        }
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();

            elements.Add(this._simpleDatagramBindingElement);
            elements.Add(this._messageEncodingBindingElement);
            elements.Add(this._transportBindingElement);
            return(elements);
        }
Пример #18
0
 protected override void AddBindingElements(BindingElementCollection bindingElements)
 {
     if (this.supportingTokenBE != null)
     {
         base.AddTransportSecurityBindingElement(bindingElements);
         bindingElements.Add(this.supportingTokenBE);
     }
     base.AddBindingElements(bindingElements);
 }
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection bindingElements = new BindingElementCollection();

            bindingElements.Add(this.textEncoding);
            bindingElements.Add(this.udpTransport);

            return(bindingElements.Clone());
        }
Пример #20
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();

            elements.Add(CreateSecurity());
            elements.Add(CreateMessageEncoding());
            elements.Add(CreateTransport());
            return(elements.Clone());
        }
Пример #21
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elemens = new BindingElementCollection();

            elemens.Add(new TextMessageEncodingBindingElement());
            elemens.Add(new MyBindingElement());
            elemens.Add(new HttpTransportBindingElement());
            return(elemens.Clone());
        }
Пример #22
0
        private void ValidateNoMSMQandTransactionFlow(ServiceEndpoint endpoint)
        {
            BindingElementCollection elements = endpoint.Binding.CreateBindingElements();

            if ((elements.Find <TransactionFlowBindingElement>() != null) && (elements.Find <MsmqTransportBindingElement>() != null))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("SFxTransactionFlowAndMSMQ", new object[] { endpoint.Address.Uri.AbsoluteUri })));
            }
        }
Пример #23
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();

            elements.Add(_simpleBindingElement);
            elements.Add(_messageEncodingBindingElement);
            elements.Add(_transportBindingElement);
            return(elements.Clone());
        }
Пример #24
0
        /// <summary>
        /// Creates a clone of the existing BindingElement and returns it
        /// </summary>
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection bindingElements = new BindingElementCollection();

            //Only create once
            bindingElements.Add(this.BindingElement);
            //Return the clone
            return(bindingElements.Clone());
        }
Пример #25
0
        static void ListAllBindingElements(Binding binding)
        {
            BindingElementCollection elements = binding.CreateBindingElements();

            for (int i = 0; i < elements.Count; i++)
            {
                Console.WriteLine("{0}. {1}", i + 1, elements[i].GetType().FullName);
            }
        }
Пример #26
0
        protected void AddTextEncodingBindingElement(BindingElementCollection bindingElements)
        {
            TextMessageEncodingBindingElement item = new TextMessageEncodingBindingElement {
                WriteEncoding  = Encoding.UTF8,
                MessageVersion = MessagingVersionHelper.MessageVersion(this.protocolVersion)
            };

            bindingElements.Add(item);
        }
 protected override void AddBindingElements(BindingElementCollection bindingElements)
 {
     if (this.supportingTokenBE != null)
     {
         base.AddTransportSecurityBindingElement(bindingElements);
         bindingElements.Add(this.supportingTokenBE);
     }
     base.AddBindingElements(bindingElements);
 }
Пример #28
0
        public static Binding CreateUserNameForSslNegotiatedBinding()
        {
            BindingElementCollection bec = new BindingElementCollection();

            bec.Add(SecurityBindingElement.CreateUserNameForSslBindingElement());
            bec.Add(new TextMessageEncodingBindingElement());
            bec.Add(new HttpTransportBindingElement());
            return(new CustomBinding(bec));
        }
Пример #29
0
        /// <summary>
        /// Returns an ordered collection of binding elements contained in the current binding.
        /// (Overrides <see cref="System.ServiceModel.Channels.Binding.CreateBindingElements">
        /// Binding.CreateBindingElements</see>.)
        /// </summary>
        /// <returns>
        /// An ordered collection of binding elements contained in the current binding.
        /// </returns>
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection bindingElements = new BindingElementCollection();

            bindingElements.Add(_httpMessageEncodingBindingElement);
            bindingElements.Add(GetTransport());

            return(bindingElements.Clone());
        }
Пример #30
0
 void Snippet8()
 {
     // <Snippet8>
     CustomBinding binding                      = new CustomBinding();
     BindingParameterCollection bpCol           = new BindingParameterCollection();
     BindingContext             context         = new BindingContext(binding, bpCol);
     BindingElementCollection   bindingElements = context.RemainingBindingElements;
     // </Snippet8>
 }
        /// <summary>
        /// Create the set of binding elements that make up this binding.
        /// </summary>
        /// <returns>
        /// A <see cref="T:System.Collections.Generic.ICollection`1"/> object of type <see cref="T:System.ServiceModel.Channels.BindingElement"/> that contains the binding elements from the current binding object in the correct order.
        /// </returns>
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();

            elements.Add(m_encoding);
            elements.Add(m_transport);

            return(elements.Clone());
        }
Пример #32
0
        public void CreateBindingElements()
        {
            WebHttpBinding           b  = new WebHttpBinding();
            BindingElementCollection bc = b.CreateBindingElements();

            Assert.AreEqual(2, bc.Count, "#1");
            Assert.AreEqual(typeof(WebMessageEncodingBindingElement), bc [0].GetType(), "#2");
            Assert.AreEqual(typeof(HttpTransportBindingElement), bc [1].GetType(), "#3");
        }
Пример #33
0
        public static Binding CreateKerberosBinding()
        {
            BindingElementCollection bec = new BindingElementCollection();

            bec.Add(SecurityBindingElement.CreateKerberosBindingElement());
            bec.Add(new TextMessageEncodingBindingElement());
            bec.Add(new HttpTransportBindingElement());
            return(new CustomBinding(bec));
        }
Пример #34
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection elements = new BindingElementCollection();
            if (security != null) elements.Add(security);
            elements.Add(messageEncoding);
            elements.Add(transport);

            return elements.Clone();
        }
 private void AddWindowsHttpsTransportBindingElement(BindingElementCollection bindingElements)
 {
     HttpsTransportBindingElement item = new HttpsTransportBindingElement {
         RequireClientCertificate = false,
         UseDefaultWebProxy = false,
         AuthenticationScheme = AuthenticationSchemes.Negotiate
     };
     bindingElements.Add(item);
 }
Пример #36
0
        protected void AddInteropHttpsTransportBindingElement(BindingElementCollection bindingElements)
        {
            HttpsTransportBindingElement item = new HttpsTransportBindingElement {
                RequireClientCertificate = true,
                UseDefaultWebProxy       = false
            };

            bindingElements.Add(item);
        }
Пример #37
0
        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);
        }
Пример #38
0
        void VerifyContextBinding()
        {
            BindingElementCollection elements = Endpoint.Binding.CreateBindingElements();

            if (elements.Contains(typeof(ContextBindingElement)))
            {
                return;
            }
            throw new InvalidOperationException("Can only use a context binding with " + GetType());
        }
Пример #39
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection bindingElements = new BindingElementCollection();

            bindingElements.Add(sessionElement);
            bindingElements.Add(encodingElement);
            bindingElements.Add(transportElement);

            return(bindingElements.Clone());
        }
Пример #40
0
        /// <summary>
        /// Create the set of binding elements that make up this binding.
        /// NOTE: order of binding elements is important.
        /// </summary>
        /// <returns></returns>
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElementCollection bindingElements = new BindingElementCollection();

            // only two binding elements are used.
            bindingElements.Add(_encoding);
            bindingElements.Add(_transport);

            return(bindingElements.Clone());
        }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection();
     elements.Add(this._trafficControlBindingElement);
     elements.Add(this._messageEncodingBindingElement);
     //elements.Add(this._symmetricSecurityBindingElement);
     //elements.Add(this._transactionFlowBindingElement);
     elements.Add(this._transportBindingElement);
     return elements.Clone();
 }
Пример #42
0
 public SimpleDatagramBinding()
 {
     BindingElement[] bindingElements = new BindingElement[]
     {
         new TextMessageEncodingBindingElement(),
         new HttpTransportBindingElement()
     };
     bindingElementCollection = new BindingElementCollection(bindingElements);
     transportBindingElement = (TransportBindingElement)bindingElements[1];
 }
Пример #43
0
        public override BindingElementCollection CreateBindingElements()
        {
            var elements = new BindingElementCollection
                {
                    this._encoding,
                    this._mainTransport
                };

            return elements;
        }
        public override BindingElementCollection CreateBindingElements()
        {
            var elements = new BindingElementCollection
            {
                this._encoding,
                this._mainTransport
            };

            return(elements);
        }
Пример #45
0
        //The heart of the custom binding
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElement element = new ContextBindingElement(ContextProtectionLevel, ContextExchangeMechanism.ContextSoapHeader);

            BindingElementCollection elements = base.CreateBindingElements();

            elements.Insert(0, element);

            return(elements);
        }
Пример #46
0
 public static Binding GetDefaultBinding()
 {
     var bindingElements = new BindingElementCollection {new BinaryMessageEncodingBindingElement(), GetDefaultTransport() };
     var customBinding = new CustomBinding(bindingElements);
     #if DEBUG
     customBinding.ReceiveTimeout = TimeSpan.FromMinutes(60);
     customBinding.SendTimeout = TimeSpan.FromMinutes(60);
     #endif
     return customBinding;
 }
Пример #47
0
        protected void AddNamedPipeBindingElement(BindingElementCollection bindingElements)
        {
            NamedPipeTransportBindingElement item = new NamedPipeTransportBindingElement {
                MaxPendingConnections = 50
            };

            item.ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint = 0x19;
            item.MaxPendingAccepts = 0x19;
            bindingElements.Add(item);
        }
Пример #48
0
        public static Binding CreateSspiNegotiatedOverTransportBinding()
        {
            BindingElementCollection bec = new BindingElementCollection();

            bec.Add(SecurityBindingElement.
                    CreateSspiNegotiationOverTransportBindingElement());
            bec.Add(new TextMessageEncodingBindingElement());
            bec.Add(new HttpsTransportBindingElement());
            return(new CustomBinding(bec));
        }
        internal Binding CreateResponseBinding()
        {
            BindingElementCollection be = originalBindingContext.Binding.CreateBindingElements();

            if (be.Find <SsbBindingElement>() == null)
            {
                throw new InvalidOperationException("SsbBindingElement not found");
            }
            return(new CustomBinding(be));
        }
Пример #50
0
        public override BindingElementCollection CreateBindingElements()
        {

            BindingElementCollection bindingElements = new BindingElementCollection();
            
            bindingElements.Add(sessionElement);
            bindingElements.Add(encodingElement);
            bindingElements.Add(transportElement);
            
            return bindingElements.Clone();
        }
Пример #51
0
 public SimpleSessionBinding()
 {
     BindingElement[] bindingElements = new BindingElement[]
     {
     new SimpleSessionBindingElement(),
     new BinaryMessageEncodingBindingElement(),
     new TcpTransportBindingElement()
     };
     bindingElementCollection = new BindingElementCollection(bindingElements);
     transportBindingElement = (TransportBindingElement)bindingElements[2];
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection();
     SecurityBindingElement item = this.CreateMessageSecurity();
     if (item != null)
     {
         elements.Add(item);
     }
     elements.Add(this.encoding);
     elements.Add(this.GetTransport());
     return elements.Clone();
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection();
     elements.Clear();
     if ((SecurityMode.Message == this._securityMode) || (SecurityMode.TransportWithMessageCredential == this._securityMode))
     {
         elements.Add(this.ApplyMessageSecurity(this.CreateSecurityBindingElement()));
     }
     elements.Add(this.CreateEncodingBindingElement());
     elements.Add(this.CreateTransportBindingElement());
     return elements.Clone();
 }
 public CustomBinding(IEnumerable<BindingElement> bindingElementsInTopDownChannelStackOrder)
 {
     this.bindingElements = new BindingElementCollection();
     if (bindingElementsInTopDownChannelStackOrder == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
     }
     foreach (BindingElement element in bindingElementsInTopDownChannelStackOrder)
     {
         this.bindingElements.Add(element);
     }
 }
Пример #55
0
 public override BindingElementCollection CreateBindingElements()
 {
     var elements = new BindingElementCollection();
     elements.Add(_messageElement);
     if (_sessionElement != null)
     {
         elements.Add(_sessionElement);
     }
     // the transport binding element must be the last one
     elements.Add(_transportElement);
     return elements.Clone();
 }
 internal CustomBinding(BindingElementCollection bindingElements)
 {
     this.bindingElements = new BindingElementCollection();
     if (bindingElements == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
     }
     for (int i = 0; i < bindingElements.Count; i++)
     {
         this.bindingElements.Add(bindingElements[i]);
     }
 }
 static bool BindingRequiresAuthentication(BindingElementCollection elements)
 {
     SecurityBindingElement element = elements.Find<SecurityBindingElement>();
     if (element != null)
     {
         foreach (SecurityTokenParameters parameters in EnumerateNestedTokenParameters(element))
         {
             if (parameters is SspiSecurityTokenParameters)
                 return true;
         }
     }
     return false;
 }
 public BindingElementCollection Extend(BindingElementCollection bindingElementCollection)
 {
     MessageEncodingBindingElement item = bindingElementCollection.Find<MessageEncodingBindingElement>();
     if (item != null)
     {
         ConfigureFromMessageEncodingBindingElement(item);
         int index = bindingElementCollection.IndexOf(item);
         bindingElementCollection.RemoveAt(index);
         bindingElementCollection.Insert(index, this);
         return bindingElementCollection;
     }
     bindingElementCollection.Insert(0, this);
     return bindingElementCollection;
 }
 public override BindingElementCollection CreateBindingElements()
 {
     BindingElementCollection elements = new BindingElementCollection {
         this.context,
         this.encoding
     };
     WindowsStreamSecurityBindingElement item = this.CreateTransportSecurity();
     if (item != null)
     {
         elements.Add(item);
     }
     elements.Add(this.namedPipe);
     return elements.Clone();
 }
Пример #60
0
        /// <summary>
        /// Create the set of binding elements that make up this binding. 
        /// NOTE: order of binding elements is important.
        /// </summary>
        /// <returns></returns>
        public override BindingElementCollection CreateBindingElements()
        {   
            BindingElementCollection bindingElements = new BindingElementCollection();

            if (ReliableSessionEnabled)
            {
                bindingElements.Add(session);
                bindingElements.Add(compositeDuplex);
            }

            bindingElements.Add(encoding);
            bindingElements.Add(transport);

            return bindingElements.Clone();
        }