[Category("NotWorking")] // transport security public void DefaultValuesSecurityModeTransport() { WSFederationHttpBinding b = new WSFederationHttpBinding(WSFederationHttpSecurityMode.TransportWithMessageCredential); // common tests. DefaultValues(b, "https"); // WSFederationHttpSecurity WSFederationHttpSecurity sec = b.Security; Assert.IsNotNull(sec, "#2-1"); Assert.AreEqual(WSFederationHttpSecurityMode.TransportWithMessageCredential, sec.Mode, "#2-2"); // Security.Message FederatedMessageSecurityOverHttp msg = sec.Message; Assert.IsNotNull(msg, "#2-3"); Assert.AreEqual(SecurityAlgorithmSuite.Default, msg.AlgorithmSuite, "#2-3-2"); Assert.AreEqual(SecurityKeyType.SymmetricKey, msg.IssuedKeyType, "#2-3-3"); Assert.AreEqual(true, msg.NegotiateServiceCredential, "#2-3-4"); // Binding elements BindingElementCollection bec = b.CreateBindingElements(); Assert.AreEqual(4, bec.Count, "#5-1"); Assert.AreEqual(typeof(TransactionFlowBindingElement), bec [0].GetType(), "#5-2"); Assert.AreEqual(typeof(TransportSecurityBindingElement), bec [1].GetType(), "#5-3"); Assert.AreEqual(typeof(TextMessageEncodingBindingElement), bec [2].GetType(), "#5-4"); Assert.AreEqual(typeof(HttpsTransportBindingElement), bec [3].GetType(), "#5-5"); }
internal void InitializeFrom(WSFederationHttpSecurity security) { if (security == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security"); } this.Mode = security.Mode; this.Message.InitializeFrom(security.Message); }
internal void ApplyConfiguration(WSFederationHttpSecurity security) { if (security == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security"); } security.Mode = this.Mode; this.Message.ApplyConfiguration(security.Message); }
internal void InitializeFrom(WSFederationHttpSecurity security) { if (security == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security"); } SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Mode, security.Mode); this.Message.InitializeFrom(security.Message); }
internal void ApplyConfiguration(WSFederationHttpSecurity security) { security.Mode = Mode; Message.ApplyConfiguration(security.Message); }
public static List <WS2007FederationHttpBinding> Get07FederationHttpBindings(string exeConfigPath) { if (string.IsNullOrWhiteSpace(exeConfigPath)) { return(null); } var svcSection = Read.Config.ExeConfig.GetServiceModelSection(exeConfigPath); var defaultTimeout = new TimeSpan(0, 0, 60); var configs = new List <WS2007FederationHttpBinding>(); var dfltb = new WS2007FederationHttpBinding(); foreach ( var section in svcSection.Bindings.WS2007FederationHttpBinding.ConfiguredBindings .Cast <WS2007FederationHttpBindingElement>()) { var binding = new WS2007FederationHttpBinding { Name = section.Name, CloseTimeout = section.CloseTimeout != TimeSpan.Zero ? section.CloseTimeout : defaultTimeout, OpenTimeout = section.OpenTimeout != TimeSpan.Zero ? section.OpenTimeout : defaultTimeout, SendTimeout = section.SendTimeout != TimeSpan.Zero ? section.SendTimeout : defaultTimeout, ReceiveTimeout = section.ReceiveTimeout != TimeSpan.Zero ? section.ReceiveTimeout : defaultTimeout, BypassProxyOnLocal = section.BypassProxyOnLocal, TransactionFlow = section.TransactionFlow, HostNameComparisonMode = section.HostNameComparisonMode, MaxReceivedMessageSize = section.MaxReceivedMessageSize > 0 ? section.MaxReceivedMessageSize : dfltb.MaxReceivedMessageSize, MaxBufferPoolSize = section.MaxBufferPoolSize > 0 ? section.MaxBufferPoolSize : dfltb.MaxBufferPoolSize, MessageEncoding = section.MessageEncoding, TextEncoding = section.TextEncoding ?? dfltb.TextEncoding, 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; } if (readerQuotas != null) { binding.ReaderQuotas = readerQuotas; } if (section.Security == null) { configs.Add(binding); continue; } var cfgSecurityMsg = section.Security.Message; if (cfgSecurityMsg == null) { configs.Add(binding); continue; } var security = new WSFederationHttpSecurity { Mode = section.Security.Mode, Message = new FederatedMessageSecurityOverHttp { EstablishSecurityContext = cfgSecurityMsg.EstablishSecurityContext, } }; var wsSecurityMsg = security.Message; if (cfgSecurityMsg.IssuerMetadata?.Address != null) { wsSecurityMsg.IssuerMetadataAddress = new EndpointAddress(cfgSecurityMsg.IssuerMetadata.Address); } if (!string.IsNullOrWhiteSpace(cfgSecurityMsg.IssuedTokenType)) { wsSecurityMsg.IssuedTokenType = cfgSecurityMsg.IssuedTokenType; } if (cfgSecurityMsg.Issuer?.Address != null) { wsSecurityMsg.IssuerAddress = new EndpointAddress(cfgSecurityMsg.Issuer.Address); } if (cfgSecurityMsg.ClaimTypeRequirements != null && cfgSecurityMsg.ClaimTypeRequirements.Count > 0) { foreach (var ctr in cfgSecurityMsg.ClaimTypeRequirements.Cast <ClaimTypeElement>()) { wsSecurityMsg.ClaimTypeRequirements.Add(new ClaimTypeRequirement(ctr.ClaimType, ctr.IsOptional)); } } binding.Security = security; configs.Add(binding); } return(configs); }