internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security) { security = null; NonDualMessageSecurityOverHttp messageSecurity = null; SecurityMode securityMode = SecurityMode.None; if (sbe != null) { mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential; securityMode = SecurityModeHelper.ToSecurityMode(mode); Fx.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", mode.ToString())); if (!MessageSecurityOverHttp.TryCreate(sbe, securityMode == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity)) { return(false); } } else { mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential); securityMode = SecurityModeHelper.ToSecurityMode(mode); } Fx.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", securityMode.ToString())); security = new WSHttpSecurity(securityMode, transportSecurity, messageSecurity); return(true); }
internal WSHttpSecurity(SecurityMode mode, HttpTransportSecurity transportSecurity, NonDualMessageSecurityOverHttp messageSecurity) { _mode = mode; _transportSecurity = transportSecurity == null?GetDefaultHttpTransportSecurity() : transportSecurity; _messageSecurity = messageSecurity == null ? new NonDualMessageSecurityOverHttp() : messageSecurity; }
internal void InitializeFrom(NonDualMessageSecurityOverHttp security) { base.InitializeFrom(security); if (!security.EstablishSecurityContext) { this.EstablishSecurityContext = security.EstablishSecurityContext; } }
internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security) { security = null; NonDualMessageSecurityOverHttp messageSecurity = null; SecurityMode none = SecurityMode.None; if (sbe != null) { mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message; none = SecurityModeHelper.ToSecurityMode(mode); if (!MessageSecurityOverHttp.TryCreate <NonDualMessageSecurityOverHttp>(sbe, none == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity)) { return(false); } } else { mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message); none = SecurityModeHelper.ToSecurityMode(mode); } security = new WSHttpSecurity(none, transportSecurity, messageSecurity); return(true); }
internal WSHttpSecurity(SecurityMode mode, HttpTransportSecurity transportSecurity, NonDualMessageSecurityOverHttp messageSecurity) { this.mode = mode; this.transportSecurity = (transportSecurity == null) ? GetDefaultHttpTransportSecurity() : transportSecurity; this.messageSecurity = (messageSecurity == null) ? new NonDualMessageSecurityOverHttp() : messageSecurity; }
internal WSHttpSecurity(SecurityMode mode, HttpTransportSecurity transportSecurity, NonDualMessageSecurityOverHttp messageSecurity) { this.mode = mode; this.transportSecurity = (transportSecurity == null) ? GetDefaultHttpTransportSecurity() : transportSecurity; this.messageSecurity = (messageSecurity == null) ? new NonDualMessageSecurityOverHttp() : messageSecurity; }
internal WSHttpSecurity (SecurityMode mode) { this.Mode = mode; message = new NonDualMessageSecurityOverHttp (); transport = new HttpTransportSecurity (); }
internal void InitializeFrom(NonDualMessageSecurityOverHttp security) { base.InitializeFrom(security); SetPropertyValueIfNotDefaultValue(ConfigurationStrings.EstablishSecurityContext, security.EstablishSecurityContext); }
internal void ApplyConfiguration(NonDualMessageSecurityOverHttp security) { base.ApplyConfiguration(security); security.EstablishSecurityContext = this.EstablishSecurityContext; }
public static List<WSHttpBinding> GetWsHttpBindings(string exeConfigPath) { var svcSection = Read.Config.ExeConfig.GetServiceModelSection(exeConfigPath); var configs = new List<WSHttpBinding>(); foreach ( var section in svcSection.Bindings.WSHttpBinding.ConfiguredBindings .Cast<WSHttpBindingElement>()) { var df = new WSHttpBinding(); var binding = new WSHttpBinding { 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, TransactionFlow = section.TransactionFlow, 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 reliableSessionSection = section.ReliableSession; var dfRss = new OptionalReliableSession(); var reliableSession = new OptionalReliableSession { Enabled = reliableSessionSection.Enabled, Ordered = reliableSessionSection.Ordered, InactivityTimeout = reliableSessionSection.InactivityTimeout != TimeSpan.Zero ? reliableSessionSection.InactivityTimeout : dfRss.InactivityTimeout, }; var messageSection = section.Security.Message; var message = new NonDualMessageSecurityOverHttp { EstablishSecurityContext = messageSection.EstablishSecurityContext, ClientCredentialType = messageSection.ClientCredentialType, NegotiateServiceCredential = messageSection.NegotiateServiceCredential, AlgorithmSuite = messageSection.AlgorithmSuite }; var transportSection = section.Security.Transport; var transport = new HttpTransportSecurity { ClientCredentialType = transportSection.ClientCredentialType, ProxyCredentialType = transportSection.ProxyCredentialType }; var wsHttpSecuritySection = section.Security; var wsHttpSecurity = new WSHttpSecurity { Mode = wsHttpSecuritySection.Mode, Transport = transport, Message = message }; ; binding.Security = wsHttpSecurity; if (readerQuotas != null) { binding.ReaderQuotas = readerQuotas; } binding.ReliableSession = reliableSession; configs.Add(binding); } return configs; }
internal WSHttpSecurity(SecurityMode mode) { this.Mode = mode; message = new NonDualMessageSecurityOverHttp(); transport = new HttpTransportSecurity(); }