Esempio n. 1
0
    public static Binding GetBinding(BindingType type)
    {
        var readerQuotas = new XmlDictionaryReaderQuotas {
            MaxStringContentLength = 2147483647, MaxArrayLength = 2147483647
        };
        var basicHttpSecurity = new BasicHttpSecurity {
            Mode = BasicHttpSecurityMode.TransportCredentialOnly, Transport = new HttpTransportSecurity {
                ClientCredentialType = HttpClientCredentialType.Windows
            }
        };

        if (type == BindingType.netTcp)
        {
            return(new NetTcpBinding {
                MaxReceivedMessageSize = 2147483647, ReaderQuotas = readerQuotas
            });
        }
        if (type == BindingType.wsHttp)
        {
            return(new WSHttpBinding {
                MaxReceivedMessageSize = 2147483647, ReaderQuotas = readerQuotas
            });
        }
        if (type == BindingType.basicHttp)
        {
            return(new BasicHttpBinding {
                MaxReceivedMessageSize = 2147483647, ReaderQuotas = readerQuotas, Security = basicHttpSecurity
            });
        }
        throw new ArgumentException("bindingType");
    }
Esempio n. 2
0
        public void DefaultValueSecurityModeMessage()
        {
            BasicHttpBinding b = new BasicHttpBinding(BasicHttpSecurityMode.Message);

            b.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;
            DefaultValues(b);

            // BasicHttpSecurity
            BasicHttpSecurity sec = b.Security;

            Assert.IsNotNull(sec, "#2-1");
            Assert.AreEqual(BasicHttpSecurityMode.Message, sec.Mode, "#2-2");
            BasicHttpMessageSecurity msg = sec.Message;

            Assert.IsNotNull(msg, "#2-3-1");
            Assert.AreEqual(SecurityAlgorithmSuite.Default, msg.AlgorithmSuite, "#2-3-2");
            Assert.AreEqual(BasicHttpMessageCredentialType.Certificate, msg.ClientCredentialType, "#2-3-3");
            HttpTransportSecurity trans = sec.Transport;

            Assert.IsNotNull(trans, "#2-4-1");
            Assert.AreEqual(HttpClientCredentialType.None, trans.ClientCredentialType, "#2-4-2");
            Assert.AreEqual(HttpProxyCredentialType.None, trans.ProxyCredentialType, "#2-4-3");
            Assert.AreEqual("", trans.Realm, "#2-4-4");

            // Binding elements
            BindingElementCollection bec = b.CreateBindingElements();

            Assert.AreEqual(3, bec.Count, "#5-1");
            Assert.AreEqual(typeof(AsymmetricSecurityBindingElement),
                            bec [0].GetType(), "#5-2");
            Assert.AreEqual(typeof(TextMessageEncodingBindingElement),
                            bec [1].GetType(), "#5-3");
            Assert.AreEqual(typeof(HttpTransportBindingElement),
                            bec [2].GetType(), "#5-4");
        }
Esempio n. 3
0
        /// <summary>
        /// 根据Session指定的信息创建BasicHttpBinding
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public static BasicHttpBinding CreateBasicHttpBinding(SessionInfo session)
        {
            BasicHttpBinding  binding  = new BasicHttpBinding();
            BasicHttpSecurity security = new BasicHttpSecurity();

            if (session.AppServerInfo.SupportHttps)
            {
                security.Mode = BasicHttpSecurityMode.Transport;
                security.Transport.ClientCredentialType = HttpClientCredentialType.None;
            }
            else
            {
                security.Mode = BasicHttpSecurityMode.None;
            }
            binding.Security = security;
            XmlDictionaryReaderQuotas quotas = new XmlDictionaryReaderQuotas();

            quotas.MaxArrayLength          = int.MaxValue;
            quotas.MaxStringContentLength  = int.MaxValue;
            binding.ReaderQuotas           = quotas;
            binding.MaxReceivedMessageSize = int.MaxValue;
            binding.MaxBufferSize          = int.MaxValue;
            binding.MaxBufferPoolSize      = int.MaxValue;
            binding.SendTimeout            = new TimeSpan(0, 10, 0);
            binding.ReceiveTimeout         = new TimeSpan(0, 20, 0);
            binding.UseDefaultWebProxy     = false;
            return(binding);
        }
Esempio n. 4
0
        public static void Snippet8()
        {
            // <Snippet8>
            BasicHttpBinding binding = new BasicHttpBinding();

            binding.Name = "binding1";
            binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
            binding.Security.Mode          = BasicHttpSecurityMode.Message;

            // <Snippet9>
            BasicHttpSecurity        security    = binding.Security;
            BasicHttpMessageSecurity msgSecurity = security.Message;
            // </Snippet9>

            // <Snippet10>
            BasicHttpSecurityMode secMode = security.Mode;
            // </Snippet10>

            // <Snippet11>
            HttpTransportSecurity transSec = security.Transport;

            // </Snippet11>

            Console.WriteLine("The message-level security setting is {0}", secMode.ToString());
            Console.WriteLine("The transport-level security setting is {0}", transSec.ToString());
            // </Snippet8>
        }
Esempio n. 5
0
        static void SnippetBasicHttpSecurity()
        {
            // <Snippet23>
            BasicHttpBinding  binding  = new BasicHttpBinding();
            BasicHttpSecurity security = binding.Security;

            // </Snippet23>
        }
 internal void InitializeFrom(BasicHttpSecurity security)
 {
     if (security == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security");
     }
     this.Mode = security.Mode;
     this.Transport.InitializeFrom(security.Transport);
     this.Message.InitializeFrom(security.Message);
 }
Esempio n. 7
0
 internal void ApplyConfiguration(BasicHttpSecurity security)
 {
     if (security == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security");
     }
     security.Mode = this.Mode;
     this.Transport.ApplyConfiguration(security.Transport);
     this.Message.ApplyConfiguration(security.Message);
 }
Esempio n. 8
0
 internal void InitializeFrom(BasicHttpSecurity security)
 {
     if (security == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security");
     }
     SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Mode, security.Mode);
     this.Transport.InitializeFrom(security.Transport);
     this.Message.InitializeFrom(security.Message);
 }
Esempio n. 9
0
        /// <summary>
        /// BasicHttpBinding with SSL Transport Security. Provides NO message integrity.
        /// </summary>
        /// <returns></returns>
        public static BasicHttpBinding BasicHttpOverSSLBinding()
        {
            BasicHttpBinding  binding  = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
            BasicHttpSecurity security = binding.Security;

            HttpTransportSecurity transportSecurity = security.Transport;

            transportSecurity.ClientCredentialType = HttpClientCredentialType.None;
            transportSecurity.ProxyCredentialType  = HttpProxyCredentialType.None;
            transportSecurity.Realm = "";
            return(binding);
        }
Esempio n. 10
0
        private static BasicHttpBinding CreateBasicHttpBinding()
        {
            var basicHttpBinding  = new BasicHttpBinding();
            var basicHttpSecurity = new BasicHttpSecurity {
                Mode = BasicHttpSecurityMode.Transport
            };
            var httpTransportSecurity = new HttpTransportSecurity();

            basicHttpSecurity.Transport = httpTransportSecurity;

            basicHttpBinding.Security = basicHttpSecurity;
            return(basicHttpBinding);
        }
Esempio n. 11
0
        private static BasicHttpBinding getHttpBinding()
        {
            #region
            BasicHttpBinding  httpbinding = new BasicHttpBinding();
            BasicHttpSecurity security    = new BasicHttpSecurity();
            security.Mode                      = BasicHttpSecurityMode.None;
            httpbinding.Security               = security;
            httpbinding.MaxBufferSize          = 2147483647;
            httpbinding.MaxReceivedMessageSize = 2147483647;

            return(httpbinding);

            #endregion
        }
Esempio n. 12
0
        public BasicHttpBinding GetBinding()
        {
            BasicHttpBinding binding = new BasicHttpBinding();

            try
            {
                BasicHttpSecurity security = new BasicHttpSecurity();
                security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
                security.Transport.ProxyCredentialType  = HttpProxyCredentialType.None;
                security.Transport.Realm = String.Empty;
                security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
                security.Message.AlgorithmSuite       = SecurityAlgorithmSuite.Default;
                security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;

                binding.Name                   = "BasicHttpBinding_IService";
                binding.CloseTimeout           = new TimeSpan(0, 0, 30);
                binding.OpenTimeout            = new TimeSpan(0, 0, 30);
                binding.ReceiveTimeout         = new TimeSpan(0, 10, 0);
                binding.SendTimeout            = new TimeSpan(0, 0, 30);
                binding.AllowCookies           = false;
                binding.BypassProxyOnLocal     = false;
                binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
                binding.MaxBufferSize          = 999999999;
                binding.MaxBufferPoolSize      = 999999999;
                binding.MaxReceivedMessageSize = 999999999;
                binding.MessageEncoding        = WSMessageEncoding.Text;
                binding.TextEncoding           = Encoding.UTF8;
                binding.TransferMode           = TransferMode.Buffered;
                binding.UseDefaultWebProxy     = true;


                XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas();
                readerQuotas.MaxDepth = 999999999;
                readerQuotas.MaxStringContentLength = 999999999;
                readerQuotas.MaxArrayLength         = 999999999;
                readerQuotas.MaxBytesPerRead        = 999999999;
                readerQuotas.MaxNameTableCharCount  = 999999999;
                binding.ReaderQuotas = readerQuotas;

                binding.Security = security;
            }
            catch (Exception ex)
            {
            }

            return(binding);
        }
Esempio n. 13
0
        /// <summary>
        /// BasicHttpBinding with SSL Transport Security. Provides NO message integrity.
        /// </summary>
        /// <returns></returns>
        public static BasicHttpBinding BasicHttpOverSSLBinding(long maxReceivedMessageSize)
        {
            BasicHttpBinding  binding  = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
            BasicHttpSecurity security = binding.Security;

            HttpTransportSecurity transportSecurity = security.Transport;

            transportSecurity.ClientCredentialType = HttpClientCredentialType.None;
            transportSecurity.ProxyCredentialType  = HttpProxyCredentialType.None;
            transportSecurity.Realm = "";

            if (maxReceivedMessageSize > 0)
            {
                binding.MaxReceivedMessageSize = maxReceivedMessageSize;
            }
            return(binding);
        }
Esempio n. 14
0
    public static void Default_Ctor_Initializes_Properties()
    {
        BasicHttpSecurity security = new BasicHttpSecurity();

        // These properties are not in a public contract
        BasicHttpSecurityMode expectedMode = BasicHttpSecurityMode.None;
        BasicHttpSecurityMode actualMode   = security.Mode;

        Assert.True(expectedMode == actualMode, String.Format("Mode expected: {0}, actual: {1}", expectedMode, actualMode));

        HttpTransportSecurity transportSecurity = security.Transport;

        Assert.True(transportSecurity != null, "Transport property should have been non-null");

        BasicHttpMessageSecurity httpSecurity = security.Message;

        Assert.True(httpSecurity != null, "Message property should have been non-null");
    }
Esempio n. 15
0
        public static BasicHttpBinding CreateBasicHttpBinding(bool ABoolIsHttps, int AIntSendTimeOut)
        {
            BasicHttpBinding LBasicHttpBinding = new BasicHttpBinding();

            TimeSpan LTimeSpan;

            if (AIntSendTimeOut == 0)
            {
                LTimeSpan = new TimeSpan(0, 5, 0);
            }
            else
            {
                LTimeSpan = new TimeSpan(AIntSendTimeOut * 10000000);
            }

            BasicHttpSecurity LBasicHttpSecurity = new BasicHttpSecurity();

            if (ABoolIsHttps)
            {
                LBasicHttpSecurity.Mode = BasicHttpSecurityMode.Transport;
                LBasicHttpSecurity.Transport.ClientCredentialType = HttpClientCredentialType.None;
            }
            else
            {
                LBasicHttpSecurity.Mode = BasicHttpSecurityMode.None;
            }
            LBasicHttpBinding.Security = LBasicHttpSecurity;

            XmlDictionaryReaderQuotas LXmlDictionaryReaderQuotas = new XmlDictionaryReaderQuotas();

            LXmlDictionaryReaderQuotas.MaxArrayLength         = int.MaxValue;
            LXmlDictionaryReaderQuotas.MaxStringContentLength = int.MaxValue;
            LBasicHttpBinding.ReaderQuotas = LXmlDictionaryReaderQuotas;

            LBasicHttpBinding.MaxReceivedMessageSize = int.MaxValue;
            LBasicHttpBinding.MaxBufferSize          = int.MaxValue;
            LBasicHttpBinding.MaxBufferPoolSize      = int.MaxValue;

            LBasicHttpBinding.SendTimeout    = new TimeSpan(0, LTimeSpan.Minutes, LTimeSpan.Seconds);
            LBasicHttpBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);

            return(LBasicHttpBinding);
        }
Esempio n. 16
0
        private static BasicHttpBinding CreateDefaultBinding()
        {
            BasicHttpBinding binding = new BasicHttpBinding();

            binding.CloseTimeout           = new TimeSpan(0, 1, 0);
            binding.OpenTimeout            = new TimeSpan(0, 1, 0);
            binding.SendTimeout            = new TimeSpan(0, 10, 0);
            binding.ReceiveTimeout         = new TimeSpan(0, 10, 0);
            binding.AllowCookies           = false;
            binding.BypassProxyOnLocal     = false;
            binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
            binding.MaxBufferSize          = 65536;
            binding.MaxReceivedMessageSize = 65536L;
            binding.MaxBufferPoolSize      = 524288L;
            binding.MessageEncoding        = WSMessageEncoding.Text;
            binding.TextEncoding           = Encoding.UTF8;
            binding.TransferMode           = TransferMode.Buffered;
            binding.UseDefaultWebProxy     = true;
            XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas();

            readerQuotas.MaxDepth = 32;
            readerQuotas.MaxStringContentLength = 8192;
            readerQuotas.MaxArrayLength         = 16384;
            readerQuotas.MaxBytesPerRead        = 4096;
            readerQuotas.MaxNameTableCharCount  = 16384;
            binding.ReaderQuotas = readerQuotas;
            BasicHttpSecurity security = new BasicHttpSecurity();

            security.Mode = BasicHttpSecurityMode.Transport;
            HttpTransportSecurity transport = new HttpTransportSecurity();

            transport.ClientCredentialType = HttpClientCredentialType.None;
            transport.ProxyCredentialType  = HttpProxyCredentialType.None;
            transport.Realm    = string.Empty;
            security.Transport = transport;
            BasicHttpMessageSecurity message = new BasicHttpMessageSecurity();

            message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
            message.AlgorithmSuite       = SecurityAlgorithmSuite.Default;
            security.Message             = message;
            binding.Security             = security;
            return(binding);
        }
        public virtual T CreateChannel()
        {
            /*binding Configuration*/
            var binding     = new BasicHttpBinding();
            var bindingInfo = _ServiceBindings;

            binding.CloseTimeout           = TimeSpan.FromSeconds(System.Convert.ToDouble(bindingInfo.BindingConfiguration.CloseTimeout));
            binding.OpenTimeout            = TimeSpan.FromSeconds(System.Convert.ToDouble(bindingInfo.BindingConfiguration.OpenTimeout));
            binding.ReceiveTimeout         = TimeSpan.FromSeconds(System.Convert.ToDouble(bindingInfo.BindingConfiguration.ReceiveTimeout));
            binding.SendTimeout            = TimeSpan.FromSeconds(System.Convert.ToDouble(bindingInfo.BindingConfiguration.SendTimeout));
            binding.AllowCookies           = Convert.ToBoolean(bindingInfo.BindingConfiguration.AllowCookies);
            binding.BypassProxyOnLocal     = Convert.ToBoolean(bindingInfo.BindingConfiguration.BypassProxyOnLocal);
            binding.MaxBufferSize          = Convert.ToInt32(bindingInfo.BindingConfiguration.MaxBufferSize);
            binding.MaxBufferPoolSize      = Convert.ToInt64(bindingInfo.BindingConfiguration.MaxBufferPoolSize);
            binding.MaxReceivedMessageSize = Convert.ToInt64(bindingInfo.BindingConfiguration.MaxReceivedMessageSize);
            binding.TextEncoding           = System.Text.Encoding.UTF8;
            binding.TransferMode           = TransferMode.Buffered;
            binding.UseDefaultWebProxy     = Convert.ToBoolean(bindingInfo.BindingConfiguration.UseDefaultWebProxy);
            /*readerQuotas Configuration*/
            var readerQuotas = new XmlDictionaryReaderQuotas();

            readerQuotas.MaxDepth = Convert.ToInt32(bindingInfo.BindingConfiguration.ReaderQuotas.MaxDepth);
            readerQuotas.MaxStringContentLength = Convert.ToInt32(bindingInfo.BindingConfiguration.ReaderQuotas.MaxStringContentLength);
            readerQuotas.MaxArrayLength         = Convert.ToInt32(bindingInfo.BindingConfiguration.ReaderQuotas.MaxArrayLength);
            readerQuotas.MaxBytesPerRead        = Convert.ToInt32(bindingInfo.BindingConfiguration.ReaderQuotas.MaxBytesPerRead);
            readerQuotas.MaxNameTableCharCount  = Convert.ToInt32(bindingInfo.BindingConfiguration.ReaderQuotas.MaxNameTableCharCount);
            binding.ReaderQuotas = readerQuotas;
            /*Security Configuration*/
            BasicHttpSecurity security = binding.Security;

            security.Mode = BasicHttpSecurityMode.None;
            /*Transport Security Configuration*/
            HttpTransportSecurity transportSecurity = security.Transport;

            transportSecurity.ClientCredentialType = HttpClientCredentialType.None;
            transportSecurity.ProxyCredentialType  = HttpProxyCredentialType.None;

            var factory = new ChannelFactory <T>(binding, new EndpointAddress(bindingInfo.EndpointAdress));

            return(factory.CreateChannel());
        }
Esempio n. 18
0
        /// <summary>
        /// Creates an http binding
        /// </summary>
        /// <returns>An http binding</returns>
        private BasicHttpBinding CreateHttpBinding()
        {
            var binding = new BasicHttpBinding
            {
                MaxReceivedMessageSize = int.MaxValue,
                SendTimeout            = TimeSpan.FromMinutes(10),
                ReceiveTimeout         = TimeSpan.FromMinutes(10),
                OpenTimeout            = TimeSpan.FromMinutes(10),
                CloseTimeout           = TimeSpan.FromMinutes(10)
            };

#if !SILVERLIGHT
            if (this.AuthenticationMode != Taupo.Common.AuthenticationMode.None)
            {
                BasicHttpSecurity basicHttpSecuritySettings = new BasicHttpSecurity()
                {
                    Mode = BasicHttpSecurityMode.TransportCredentialOnly
                };
                HttpTransportSecurity transportSecurity = new HttpTransportSecurity();
                if (this.AuthenticationMode == Taupo.Common.AuthenticationMode.Basic)
                {
                    transportSecurity.ClientCredentialType = HttpClientCredentialType.Basic;
                    transportSecurity.ProxyCredentialType  = HttpProxyCredentialType.Basic;
                }
                else
                {
                    transportSecurity.ClientCredentialType = HttpClientCredentialType.Windows;
                    transportSecurity.ProxyCredentialType  = HttpProxyCredentialType.Windows;
                }

                basicHttpSecuritySettings.Transport = transportSecurity;
                binding.Security = basicHttpSecuritySettings;
            }

            binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
            binding.ReaderQuotas.MaxDepth       = int.MaxValue;
            binding.ReaderQuotas.MaxArrayLength = int.MaxValue;
#endif
            return(binding);
        }
Esempio n. 19
0
        /// <summary>
        /// 创建BasicHttpBinding,并进行默认设置
        /// </summary>
        /// <returns></returns>
        public static BasicHttpBinding CreateBasicHttpBinding()
        {
            //默认启用https传输层加密,无需验证客户端证书
            BasicHttpSecurity security = new BasicHttpSecurity();

            security.Mode = BasicHttpSecurityMode.Transport;
            security.Transport.ClientCredentialType = HttpClientCredentialType.None;
            XmlDictionaryReaderQuotas quotas = new XmlDictionaryReaderQuotas();

            quotas.MaxArrayLength         = int.MaxValue;
            quotas.MaxStringContentLength = int.MaxValue;
            BasicHttpBinding binding = new BasicHttpBinding();

            binding.Security               = security;
            binding.ReaderQuotas           = quotas;
            binding.MaxReceivedMessageSize = int.MaxValue;
            binding.MaxBufferSize          = int.MaxValue;
            binding.MaxBufferPoolSize      = int.MaxValue;
            binding.SendTimeout            = new TimeSpan(0, 10, 0);
            binding.ReceiveTimeout         = new TimeSpan(0, 20, 0);
            binding.UseDefaultWebProxy     = false;
            return(binding);
        }
Esempio n. 20
0
        public static void Snippet5()
        {
            // <Snippet5>
            BasicHttpBinding binding = new BasicHttpBinding("myBinding");

            binding.Name = "binding1";
            binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
            binding.Security.Mode          = BasicHttpSecurityMode.Message;

            // <Snippet6>
            BasicHttpSecurity        security    = binding.Security;
            BasicHttpMessageSecurity msgSecurity = security.Message;
            // </Snippet6>

            // <Snippet7>
            SecurityAlgorithmSuite         sas      = msgSecurity.AlgorithmSuite;
            BasicHttpMessageCredentialType credType = msgSecurity.ClientCredentialType;

            // </Snippet7>

            Console.WriteLine("The algorithm suite used is {0}", sas.ToString());
            Console.WriteLine("The client credential type used is {0}", credType.ToString());
            // </Snippet5>
        }
    public static void BasicHttpSecurity_MessageSecurityMode_ThrowsPNSE(BasicHttpSecurityMode value)
    {
        var security = new BasicHttpSecurity();

        Assert.Throws <PlatformNotSupportedException>(() => security.Mode = value);
    }
Esempio n. 22
0
        private static MatrikkelKartServiceClient CreateMatrikkelKartServiceClient(string url, string username, string password)
        {
            var binding = new BasicHttpBinding
            {
                CloseTimeout           = new TimeSpan(0, 0, 1, 0),
                OpenTimeout            = new TimeSpan(0, 0, 1, 0),
                ReceiveTimeout         = new TimeSpan(0, 0, 10, 0),
                SendTimeout            = new TimeSpan(0, 0, 1, 0),
                AllowCookies           = false,
                BypassProxyOnLocal     = false,
                HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
                MaxBufferPoolSize      = 524288,
                MaxBufferSize          = 524288,
                MaxReceivedMessageSize = 524288,
                TextEncoding           = Encoding.UTF8,
                TransferMode           = TransferMode.Buffered,
                UseDefaultWebProxy     = true,
                MessageEncoding        = WSMessageEncoding.Text
            };

            var basicHttpSecurity = new BasicHttpSecurity {
                Mode = BasicHttpSecurityMode.TransportCredentialOnly
            };

            var httpTransportSecurity =
                new HttpTransportSecurity
            {
                ClientCredentialType = HttpClientCredentialType.Basic,
                ProxyCredentialType  = HttpProxyCredentialType.None,
                Realm = "default"
            };

            basicHttpSecurity.Transport = httpTransportSecurity;

            var basicHttpMessageSecurity =
                new BasicHttpMessageSecurity
            {
                ClientCredentialType = BasicHttpMessageCredentialType.UserName,
                AlgorithmSuite       = SecurityAlgorithmSuite.Default
            };

            basicHttpSecurity.Message = basicHttpMessageSecurity;

            binding.Security = basicHttpSecurity;

            var endpointAddress = new EndpointAddress(
                new Uri(url), AddressHeader.CreateAddressHeader("contract", "",
                                                                "GImatrikkelWS.MatrikkelkartPort.MatrikkelKartService"));

            return(new MatrikkelKartServiceClient(binding, endpointAddress)
            {
                ClientCredentials =
                {
                    UserName     =
                    {
                        UserName = username.ToLower(),
                        Password = password
                    }
                }
            });
        }
Esempio n. 23
0
 public BasicHttpBinding(BasicHttpSecurityMode securityMode)
 {
     security = new BasicHttpSecurity();
 }
Esempio n. 24
0
        public static List <BasicHttpBinding> GetBasicHttpBindings(string exeConfigPath)
        {
            if (string.IsNullOrWhiteSpace(exeConfigPath))
            {
                return(null);
            }
            var svcSection = Read.Config.ExeConfig.GetServiceModelSection(exeConfigPath);

            var configs = new List <BasicHttpBinding>();

            foreach (
                var section in
                svcSection.Bindings.BasicHttpBinding.ConfiguredBindings
                .Cast <BasicHttpBindingElement>())
            {
                var df      = new BasicHttpBinding();
                var binding = new BasicHttpBinding
                {
                    Name = section.Name,

                    MaxBufferPoolSize      = section.MaxBufferPoolSize > 0 ? section.MaxBufferPoolSize : df.MaxBufferPoolSize,
                    MaxReceivedMessageSize =
                        section.MaxReceivedMessageSize > 0 ? section.MaxReceivedMessageSize : df.MaxReceivedMessageSize,
                    CloseTimeout   = section.CloseTimeout != TimeSpan.Zero ? section.CloseTimeout : df.CloseTimeout,
                    OpenTimeout    = section.OpenTimeout != TimeSpan.Zero ? section.OpenTimeout : df.OpenTimeout,
                    SendTimeout    = section.SendTimeout != TimeSpan.Zero ? section.SendTimeout : df.SendTimeout,
                    ReceiveTimeout =
                        section.ReceiveTimeout != TimeSpan.Zero ? section.ReceiveTimeout : df.ReceiveTimeout,

                    TextEncoding = section.TextEncoding ?? df.TextEncoding,

                    MessageEncoding        = section.MessageEncoding,
                    AllowCookies           = section.AllowCookies,
                    BypassProxyOnLocal     = section.BypassProxyOnLocal,
                    HostNameComparisonMode = section.HostNameComparisonMode,
                    UseDefaultWebProxy     = section.UseDefaultWebProxy,
                };

                var readerQuotasSection = section.ReaderQuotas;
                var readerQuotas        = new System.Xml.XmlDictionaryReaderQuotas();
                if (readerQuotasSection != null && readerQuotasSection.MaxDepth > 0)
                {
                    readerQuotas.MaxDepth = readerQuotasSection.MaxDepth;
                    readerQuotas.MaxStringContentLength = readerQuotasSection.MaxStringContentLength;
                    readerQuotas.MaxArrayLength         = readerQuotasSection.MaxArrayLength;
                    readerQuotas.MaxBytesPerRead        = readerQuotasSection.MaxBytesPerRead;
                    readerQuotas.MaxNameTableCharCount  = readerQuotasSection.MaxNameTableCharCount;
                }
                else
                {
                    readerQuotas = null;
                }

                var messageSection = section.Security.Message;
                var message        = new BasicHttpMessageSecurity
                {
                    ClientCredentialType = messageSection.ClientCredentialType,
                    AlgorithmSuite       = messageSection.AlgorithmSuite,
                };
                var transportSection = section.Security.Transport;
                var transport        = new HttpTransportSecurity
                {
                    ClientCredentialType = transportSection.ClientCredentialType,
                    ProxyCredentialType  = transportSection.ProxyCredentialType
                };
                var basicHttpSecurity = new BasicHttpSecurity()
                {
                    Message   = message,
                    Mode      = section.Security.Mode,
                    Transport = transport
                };

                binding.Security = basicHttpSecurity;
                if (readerQuotas != null)
                {
                    binding.ReaderQuotas = readerQuotas;
                }

                configs.Add(binding);
            }
            return(configs);
        }