internal void ApplyConfiguration(X509CertificateRecipientClientCredential cert) { if (cert == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("cert"); } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.Authentication].ValueOrigin != PropertyValueOrigin.Default) { this.Authentication.ApplyConfiguration(cert.Authentication); } if (propertyInfo[ConfigurationStrings.SslCertificateAuthentication].ValueOrigin != PropertyValueOrigin.Default) { cert.SslCertificateAuthentication = new X509ServiceCertificateAuthentication(); this.SslCertificateAuthentication.ApplyConfiguration(cert.SslCertificateAuthentication); } this.DefaultCertificate.ApplyConfiguration(cert); X509ScopedServiceCertificateElementCollection scopedCertificates = this.ScopedCertificates; for (int i = 0; i < scopedCertificates.Count; ++i) { scopedCertificates[i].ApplyConfiguration(cert); } }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); ConnectionOrientedTransportBindingElement binding = (ConnectionOrientedTransportBindingElement)bindingElement; binding.ConnectionBufferSize = this.ConnectionBufferSize; #if DESKTOP binding.HostNameComparisonMode = this.HostNameComparisonMode; binding.ChannelInitializationTimeout = this.ChannelInitializationTimeout; #endif PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { binding.MaxBufferSize = this.MaxBufferSize; } #if DESKTOP if (this.MaxPendingConnections != ConnectionOrientedTransportDefaults.MaxPendingConnectionsConst) { binding.MaxPendingConnections = this.MaxPendingConnections; } binding.MaxOutputDelay = this.MaxOutputDelay; if (this.MaxPendingAccepts != ConnectionOrientedTransportDefaults.MaxPendingAcceptsConst) { binding.MaxPendingAccepts = this.MaxPendingAccepts; } #endif binding.TransferMode = this.TransferMode; }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); HttpTransportBindingElement binding = (HttpTransportBindingElement)bindingElement; binding.AllowCookies = this.AllowCookies; binding.AuthenticationScheme = this.AuthenticationScheme; binding.BypassProxyOnLocal = this.BypassProxyOnLocal; binding.DecompressionEnabled = this.DecompressionEnabled; binding.KeepAliveEnabled = this.KeepAliveEnabled; binding.HostNameComparisonMode = this.HostNameComparisonMode; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { binding.MaxBufferSize = this.MaxBufferSize; } binding.MaxPendingAccepts = this.MaxPendingAccepts; binding.ProxyAddress = this.ProxyAddress; binding.ProxyAuthenticationScheme = this.ProxyAuthenticationScheme; binding.Realm = this.Realm; binding.RequestInitializationTimeout = this.RequestInitializationTimeout; binding.TransferMode = this.TransferMode; binding.UnsafeConnectionNtlmAuthentication = this.UnsafeConnectionNtlmAuthentication; binding.UseDefaultWebProxy = this.UseDefaultWebProxy; binding.ExtendedProtectionPolicy = ChannelBindingUtility.BuildPolicy(this.ExtendedProtectionPolicy); this.WebSocketSettings.ApplyConfiguration(binding.WebSocketSettings); if (this.MessageHandlerFactory != null) { binding.MessageHandlerFactory = HttpMessageHandlerFactory.CreateFromConfigurationElement(this.MessageHandlerFactory); } }
void InternalOnApplyConfiguration(ServiceEndpoint endpoint) { WebHttpEndpoint webHttpEndpoint = endpoint as WebHttpEndpoint; Fx.Assert(webHttpEndpoint != null, "The endpoint should be of type WebHttpServiceEndpoint since this is what was returned with CreateServiceEndpoint()."); if (IsSet(ConfigurationStrings.HostNameComparisonMode)) { webHttpEndpoint.HostNameComparisonMode = this.HostNameComparisonMode; } if (IsSet(ConfigurationStrings.MaxBufferPoolSize)) { webHttpEndpoint.MaxBufferPoolSize = this.MaxBufferPoolSize; } if (IsSet(ConfigurationStrings.MaxReceivedMessageSize)) { webHttpEndpoint.MaxReceivedMessageSize = this.MaxReceivedMessageSize; } if (IsSet(ConfigurationStrings.WriteEncoding)) { webHttpEndpoint.WriteEncoding = this.WriteEncoding; } if (IsSet(ConfigurationStrings.TransferMode)) { webHttpEndpoint.TransferMode = this.TransferMode; } if (IsSet(WebConfigurationStrings.HelpEnabled)) { webHttpEndpoint.HelpEnabled = this.HelpEnabled; } if (IsSet(WebConfigurationStrings.DefaultOutgoingResponseFormat)) { webHttpEndpoint.DefaultOutgoingResponseFormat = this.DefaultOutgoingResponseFormat; } if (IsSet(WebConfigurationStrings.AutomaticFormatSelectionEnabled)) { webHttpEndpoint.AutomaticFormatSelectionEnabled = this.AutomaticFormatSelectionEnabled; } if (IsSet(WebConfigurationStrings.CrossDomainScriptAccessEnabled)) { webHttpEndpoint.CrossDomainScriptAccessEnabled = this.CrossDomainScriptAccessEnabled; } if (IsSet(WebConfigurationStrings.FaultExceptionEnabled)) { webHttpEndpoint.FaultExceptionEnabled = this.FaultExceptionEnabled; } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { webHttpEndpoint.MaxBufferSize = this.MaxBufferSize; } if (IsSet(WebConfigurationStrings.ContentTypeMapper)) { webHttpEndpoint.ContentTypeMapper = WebHttpBindingElement.GetContentTypeMapper(this.ContentTypeMapper); } this.Security.ApplyConfiguration(webHttpEndpoint.Security); WebHttpBindingElement.ApplyReaderQuotasConfiguration(webHttpEndpoint.ReaderQuotas, this.ReaderQuotas); }
/// <summary> /// Gets the endpoint identity from the configuration file /// </summary> /// <param name="element"></param> /// <returns></returns> private EndpointIdentity GetIdentity(IdentityElement element) { PropertyInformationCollection properties = element.ElementInformation.Properties; if (properties["userPrincipalName"].ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value)); } if (properties["servicePrincipalName"].ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value)); } if (properties["dns"].ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value)); } if (properties["rsa"].ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value)); } if (properties["certificate"].ValueOrigin != PropertyValueOrigin.Default) { X509Certificate2Collection supportingCertificates = new X509Certificate2Collection(); supportingCertificates.Import(Convert.FromBase64String(element.Certificate.EncodedValue)); if (supportingCertificates.Count == 0) { throw new InvalidOperationException("UnableToLoadCertificateIdentity"); } X509Certificate2 primaryCertificate = supportingCertificates[0]; supportingCertificates.RemoveAt(0); return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, supportingCertificates)); } return(null); }
// </Snippet84> // <Snippet85> static public void GetElementProperties() { // Get the current configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); // Get the section. UrlsSection section = (UrlsSection)config.GetSection("MyUrls"); // Get the element. UrlConfigElement url = section.Simple; // Get the element properties. PropertyInformationCollection properties = url.ElementInformation.Properties; foreach (PropertyInformation prop in properties) { Console.WriteLine( "Name: {0} Type: {1}", prop.Name, prop.Type.ToString()); } }
internal void Copy(IdentityElement source) { if (null == source) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); } PropertyInformationCollection properties = source.ElementInformation.Properties; if (properties[ConfigurationStrings.UserPrincipalName].ValueOrigin != PropertyValueOrigin.Default) { this.UserPrincipalName.Value = source.UserPrincipalName.Value; } if (properties[ConfigurationStrings.ServicePrincipalName].ValueOrigin != PropertyValueOrigin.Default) { this.ServicePrincipalName.Value = source.ServicePrincipalName.Value; } if (properties[ConfigurationStrings.Certificate].ValueOrigin != PropertyValueOrigin.Default) { this.Certificate.EncodedValue = source.Certificate.EncodedValue; } if (properties[ConfigurationStrings.CertificateReference].ValueOrigin != PropertyValueOrigin.Default) { this.CertificateReference.StoreName = source.CertificateReference.StoreName; this.CertificateReference.StoreLocation = source.CertificateReference.StoreLocation; this.CertificateReference.X509FindType = source.CertificateReference.X509FindType; this.CertificateReference.FindValue = source.CertificateReference.FindValue; } }
public override void ApplyConfiguration(System.ServiceModel.Channels.BindingElement bindingElement) { // Base configuration base.ApplyConfiguration(bindingElement); // Now process the own configuration SwaEncodingBindingElement Binding = (SwaEncodingBindingElement)bindingElement; PropertyInformationCollection PropertyInfos = ElementInformation.Properties; if (PropertyInfos["innerMessageEncoding"].ValueOrigin != PropertyValueOrigin.Default) { switch (this.InnerMessageEncoding) { case "textMessageEncoding": Binding.InnerBindingElement = new TextMessageEncodingBindingElement(); break; case "binaryMessageEncoding": Binding.InnerBindingElement = new BinaryMessageEncodingBindingElement(); break; default: throw new ConfigurationErrorsException("Inner message encoding can be binary or text, only!"); } } }
protected internal void ApplyConfiguration(ClientCredentials behavior) { if (behavior == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("behavior"); } PropertyInformationCollection properties = base.ElementInformation.Properties; if (properties["windows"].ValueOrigin != PropertyValueOrigin.Default) { this.Windows.ApplyConfiguration(behavior.Windows); } if (properties["clientCertificate"].ValueOrigin != PropertyValueOrigin.Default) { this.ClientCertificate.ApplyConfiguration(behavior.ClientCertificate); } if (properties["serviceCertificate"].ValueOrigin != PropertyValueOrigin.Default) { this.ServiceCertificate.ApplyConfiguration(behavior.ServiceCertificate); } if (properties["issuedToken"].ValueOrigin != PropertyValueOrigin.Default) { this.IssuedToken.ApplyConfiguration(behavior.IssuedToken); } if (properties["httpDigest"].ValueOrigin != PropertyValueOrigin.Default) { this.HttpDigest.ApplyConfiguration(behavior.HttpDigest); } if (properties["peer"].ValueOrigin != PropertyValueOrigin.Default) { this.Peer.ApplyConfiguration(behavior.Peer); } behavior.SupportInteractive = this.SupportInteractive; }
protected override void OnApplyConfiguration(Binding binding) { NetTcpBinding nptBinding = (NetTcpBinding)binding; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; nptBinding.TransactionFlow = this.TransactionFlow; nptBinding.TransferMode = this.TransferMode; nptBinding.TransactionProtocol = this.TransactionProtocol; nptBinding.HostNameComparisonMode = this.HostNameComparisonMode; if (this.ListenBacklog != TcpTransportDefaults.ListenBacklogConst) { nptBinding.ListenBacklog = this.ListenBacklog; } nptBinding.MaxBufferPoolSize = this.MaxBufferPoolSize; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { nptBinding.MaxBufferSize = this.MaxBufferSize; } if (this.MaxConnections != 0) { nptBinding.MaxConnections = this.MaxConnections; } nptBinding.MaxReceivedMessageSize = this.MaxReceivedMessageSize; nptBinding.PortSharingEnabled = this.PortSharingEnabled; this.ReliableSession.ApplyConfiguration(nptBinding.ReliableSession); this.Security.ApplyConfiguration(nptBinding.Security); this.ReaderQuotas.ApplyConfiguration(nptBinding.ReaderQuotas); }
protected override void OnApplyConfiguration(Binding binding) { HttpBindingBase httpBindingBase = (HttpBindingBase)binding; httpBindingBase.BypassProxyOnLocal = this.BypassProxyOnLocal; httpBindingBase.HostNameComparisonMode = this.HostNameComparisonMode; httpBindingBase.MaxBufferPoolSize = this.MaxBufferPoolSize; httpBindingBase.MaxReceivedMessageSize = this.MaxReceivedMessageSize; httpBindingBase.TextEncoding = this.TextEncoding; httpBindingBase.TransferMode = this.TransferMode; httpBindingBase.UseDefaultWebProxy = this.UseDefaultWebProxy; httpBindingBase.AllowCookies = this.AllowCookies; if (this.ProxyAddress != null) { httpBindingBase.ProxyAddress = this.ProxyAddress; } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { httpBindingBase.MaxBufferSize = this.MaxBufferSize; } this.ReaderQuotas.ApplyConfiguration(httpBindingBase.ReaderQuotas); }
//Called by the WCF to apply the configuration settings (the property above) to the binding element public override void ApplyConfiguration(BindingElement bindingElement) { GZipMessageEncodingBindingElement binding = (GZipMessageEncodingBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo["innerMessageEncoding"].ValueOrigin != PropertyValueOrigin.Default) { switch (this.InnerMessageEncoding) { case "textMessageEncoding": binding.InnerMessageEncodingBindingElement = new TextMessageEncodingBindingElement(); ((TextMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).MaxReadPoolSize = int.MaxValue; ((TextMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).MaxWritePoolSize = int.MaxValue; ((TextMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxStringContentLength = int.MaxValue; ((TextMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxArrayLength = int.MaxValue; ((TextMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxBytesPerRead = int.MaxValue; break; case "binaryMessageEncoding": binding.InnerMessageEncodingBindingElement = new BinaryMessageEncodingBindingElement(); ((BinaryMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).MaxReadPoolSize = int.MaxValue; ((BinaryMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).MaxWritePoolSize = int.MaxValue; ((BinaryMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxStringContentLength = int.MaxValue; ((BinaryMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxArrayLength = int.MaxValue; ((BinaryMessageEncodingBindingElement)binding.InnerMessageEncodingBindingElement).ReaderQuotas.MaxBytesPerRead = int.MaxValue; break; } } }
protected override void OnApplyConfiguration(Binding binding) { WebHttpBinding webBinding = (WebHttpBinding)binding; webBinding.BypassProxyOnLocal = this.BypassProxyOnLocal; webBinding.HostNameComparisonMode = this.HostNameComparisonMode; webBinding.MaxBufferPoolSize = this.MaxBufferPoolSize; webBinding.MaxReceivedMessageSize = this.MaxReceivedMessageSize; webBinding.WriteEncoding = this.WriteEncoding; webBinding.TransferMode = this.TransferMode; webBinding.UseDefaultWebProxy = this.UseDefaultWebProxy; webBinding.AllowCookies = this.AllowCookies; if (this.ProxyAddress != null) { webBinding.ProxyAddress = this.ProxyAddress; } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default) { webBinding.MaxBufferSize = this.MaxBufferSize; } webBinding.ContentTypeMapper = GetContentTypeMapper(this.ContentTypeMapper); webBinding.CrossDomainScriptAccessEnabled = this.CrossDomainScriptAccessEnabled; this.Security.ApplyConfiguration(webBinding.Security); ApplyReaderQuotasConfiguration(webBinding.ReaderQuotas, this.ReaderQuotas); }
/// <summary> /// Gets the endpoint identity from the configuration file /// </summary> /// <param name="element"></param> /// <returns></returns> private EndpointIdentity GetIdentity(IdentityElement element) { PropertyInformationCollection properties = element.ElementInformation.Properties; EndpointIdentity rev = GetEndpointIdentity(element, properties) ?? GetEndpointIdentityByCertificate(element, properties); return(rev); }
private static bool TryGetValue <T>(ConfigurationElement element, string name, out T value) { PropertyInformationCollection properties = element.ElementInformation.Properties; PropertyInformation property = properties.Cast <PropertyInformation>().FirstOrDefault(p => p.Name == name); bool hasProperty = property != null; value = hasProperty ? (T)property.Value : default(T); return(hasProperty); }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); CompositeDuplexBindingElement binding = (CompositeDuplexBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.ClientBaseAddress].ValueOrigin != PropertyValueOrigin.Default) { binding.ClientBaseAddress = this.ClientBaseAddress; } }
internal void Copy(ChannelEndpointElement source) { if (source == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); } PropertyInformationCollection properties = source.ElementInformation.Properties; if (properties[ConfigurationStrings.Address].ValueOrigin != PropertyValueOrigin.Default) { this.Address = source.Address; } if (properties[ConfigurationStrings.BehaviorConfiguration].ValueOrigin != PropertyValueOrigin.Default) { this.BehaviorConfiguration = source.BehaviorConfiguration; } if (properties[ConfigurationStrings.Binding].ValueOrigin != PropertyValueOrigin.Default) { this.Binding = source.Binding; } if (properties[ConfigurationStrings.BindingConfiguration].ValueOrigin != PropertyValueOrigin.Default) { this.BindingConfiguration = source.BindingConfiguration; } if (properties[ConfigurationStrings.Name].ValueOrigin != PropertyValueOrigin.Default) { this.Name = source.Name; } if (properties[ConfigurationStrings.Contract].ValueOrigin != PropertyValueOrigin.Default) { this.Contract = source.Contract; } if (properties[ConfigurationStrings.Headers].ValueOrigin != PropertyValueOrigin.Default && source.Headers != null) { this.Headers.Copy(source.Headers); } if (properties[ConfigurationStrings.Identity].ValueOrigin != PropertyValueOrigin.Default && source.Identity != null) { this.Identity.Copy(source.Identity); } if (properties[ConfigurationStrings.Kind].ValueOrigin != PropertyValueOrigin.Default) { this.Kind = source.Kind; } if (properties[ConfigurationStrings.EndpointConfiguration].ValueOrigin != PropertyValueOrigin.Default) { this.EndpointConfiguration = source.EndpointConfiguration; } }
internal void ApplyConfiguration(X509CertificateRecipientServiceCredential cert) { if (cert == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("cert"); } PropertyInformationCollection properties = base.ElementInformation.Properties; if (((properties["storeLocation"].ValueOrigin != PropertyValueOrigin.Default) || (properties["storeName"].ValueOrigin != PropertyValueOrigin.Default)) || ((properties["x509FindType"].ValueOrigin != PropertyValueOrigin.Default) || (properties["findValue"].ValueOrigin != PropertyValueOrigin.Default))) { cert.SetCertificate(this.StoreLocation, this.StoreName, this.X509FindType, this.FindValue); } }
private EndpointIdentity GetIdentity(IdentityElement element) { EndpointIdentity result = null; PropertyInformationCollection properties = element.ElementInformation.Properties; if (properties == null) { throw new ArgumentNullException("获取终结点标识属性错误"); } var propertyInformation = properties["userPrincipalName"]; if (propertyInformation != null && propertyInformation.ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value)); } var information = properties["servicePrincipalName"]; if (information != null && information.ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value)); } var propertyInformation1 = properties["dns"]; if (propertyInformation1 != null && propertyInformation1.ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value)); } var information1 = properties["rsa"]; if (information1 != null && information1.ValueOrigin != PropertyValueOrigin.Default) { return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value)); } var propertyInformation2 = properties["certificate"]; if (propertyInformation2 != null && propertyInformation2.ValueOrigin == PropertyValueOrigin.Default) { return(null); } X509Certificate2Collection x509Certificate2Collection = new X509Certificate2Collection(); x509Certificate2Collection.Import(Convert.FromBase64String(element.Certificate.EncodedValue)); if (x509Certificate2Collection.Count == 0) { throw new InvalidOperationException("UnableToLoadCertificateIdentity"); } X509Certificate2 primaryCertificate = x509Certificate2Collection[0]; x509Certificate2Collection.RemoveAt(0); return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, x509Certificate2Collection)); }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); OneWayBindingElement oneWayBindingElement = (OneWayBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.ChannelPoolSettings].ValueOrigin != PropertyValueOrigin.Default) { #pragma warning suppress 56506 // Microsoft, base.ApplyConfiguration() validates the argument this.ChannelPoolSettings.ApplyConfiguration(oneWayBindingElement.ChannelPoolSettings); } oneWayBindingElement.MaxAcceptedChannels = this.MaxAcceptedChannels; oneWayBindingElement.PacketRoutable = this.PacketRoutable; }
internal void ApplyConfiguration(IssuedTokenServiceCredential issuedToken) { if (issuedToken == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("issuedToken"); } issuedToken.CertificateValidationMode = this.CertificateValidationMode; issuedToken.RevocationMode = this.RevocationMode; issuedToken.TrustedStoreLocation = this.TrustedStoreLocation; issuedToken.AudienceUriMode = this.AudienceUriMode; if (!string.IsNullOrEmpty(this.CustomCertificateValidatorType)) { Type type = System.Type.GetType(this.CustomCertificateValidatorType, true); if (!typeof(X509CertificateValidator).IsAssignableFrom(type)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.ConfigInvalidCertificateValidatorType, this.CustomCertificateValidatorType, typeof(X509CertificateValidator).ToString()))); } issuedToken.CustomCertificateValidator = (X509CertificateValidator)Activator.CreateInstance(type); } if (!string.IsNullOrEmpty(this.SamlSerializerType)) { Type type = System.Type.GetType(this.SamlSerializerType, true); if (!typeof(SamlSerializer).IsAssignableFrom(type)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.ConfigInvalidSamlSerializerType, this.SamlSerializerType, typeof(SamlSerializer).ToString()))); } issuedToken.SamlSerializer = (SamlSerializer)Activator.CreateInstance(type); } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.KnownCertificates].ValueOrigin != PropertyValueOrigin.Default) { foreach (X509CertificateTrustedIssuerElement src in this.KnownCertificates) { issuedToken.KnownCertificates.Add(SecurityUtils.GetCertificateFromStore(src.StoreName, src.StoreLocation, src.X509FindType, src.FindValue, null)); } } if (propertyInfo[ConfigurationStrings.AllowedAudienceUris].ValueOrigin != PropertyValueOrigin.Default) { foreach (AllowedAudienceUriElement src in this.AllowedAudienceUris) { issuedToken.AllowedAudienceUris.Add(src.AllowedAudienceUri); } } issuedToken.AllowUntrustedRsaIssuers = this.AllowUntrustedRsaIssuers; }
internal void Copy(AddressHeaderCollectionElement source) { if (source == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); } PropertyInformationCollection properties = source.ElementInformation.Properties; if (properties[ConfigurationStrings.Headers].ValueOrigin != PropertyValueOrigin.Default) { this.Headers = source.Headers; } }
internal void Copy(ChannelEndpointElement source) { if (source == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); } PropertyInformationCollection properties = source.ElementInformation.Properties; if (properties["address"].ValueOrigin != PropertyValueOrigin.Default) { this.Address = source.Address; } if (properties["behaviorConfiguration"].ValueOrigin != PropertyValueOrigin.Default) { this.BehaviorConfiguration = source.BehaviorConfiguration; } if (properties["binding"].ValueOrigin != PropertyValueOrigin.Default) { this.Binding = source.Binding; } if (properties["bindingConfiguration"].ValueOrigin != PropertyValueOrigin.Default) { this.BindingConfiguration = source.BindingConfiguration; } if (properties["name"].ValueOrigin != PropertyValueOrigin.Default) { this.Name = source.Name; } if (properties["contract"].ValueOrigin != PropertyValueOrigin.Default) { this.Contract = source.Contract; } if ((properties["headers"].ValueOrigin != PropertyValueOrigin.Default) && (source.Headers != null)) { this.Headers.Copy(source.Headers); } if ((properties["identity"].ValueOrigin != PropertyValueOrigin.Default) && (source.Identity != null)) { this.Identity.Copy(source.Identity); } if (properties["kind"].ValueOrigin != PropertyValueOrigin.Default) { this.Kind = source.Kind; } if (properties["endpointConfiguration"].ValueOrigin != PropertyValueOrigin.Default) { this.EndpointConfiguration = source.EndpointConfiguration; } }
public override void CopyFrom(ServiceModelExtensionElement from) { base.CopyFrom(from); OneWayElement source = (OneWayElement)from; #pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument PropertyInformationCollection propertyInfo = source.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.ChannelPoolSettings].ValueOrigin != PropertyValueOrigin.Default) { this.ChannelPoolSettings.CopyFrom(source.ChannelPoolSettings); } this.MaxAcceptedChannels = source.MaxAcceptedChannels; this.PacketRoutable = source.PacketRoutable; }
public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); #pragma warning suppress 56506 // [....], base.ApplyConfiguration() validates the argument TcpTransportBindingElement binding = (TcpTransportBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (this.ListenBacklog != TcpTransportDefaults.ListenBacklogConst) { binding.ListenBacklog = this.ListenBacklog; } binding.PortSharingEnabled = this.PortSharingEnabled; binding.TeredoEnabled = this.TeredoEnabled; #pragma warning suppress 56506 // [....], base.ApplyConfiguration() validates the argument this.ConnectionPoolSettings.ApplyConfiguration(binding.ConnectionPoolSettings); binding.ExtendedProtectionPolicy = ChannelBindingUtility.BuildPolicy(this.ExtendedProtectionPolicy); }
internal void ApplyConfiguration(PeerCredential cert) { if (cert == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("cert"); } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.StoreLocation].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.StoreName].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.X509FindType].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.FindValue].ValueOrigin != PropertyValueOrigin.Default) { cert.SetCertificate(this.StoreLocation, this.StoreName, this.X509FindType, this.FindValue); } }
/// <summary> /// Заполнить хмл значениями из объекта /// </summary> /// <param name="obj">Элемент конфигурации</param> /// <param name="element">Элемент Хмл</param> /// <param name="propertyInformations">Список свойств элемента конфигурации</param> private void FillXmlFromSection(ConfigurationElement obj, XElement element, PropertyInformationCollection propertyInformations = null) { obj.ThrowIfNull(); if (propertyInformations == null) { propertyInformations = obj.ElementInformation.Properties; } var properties = obj.GetType().GetProperties(); foreach (PropertyInformation propertyInformation in propertyInformations) { //поиск в свойствах объекта var property = GetPropertyByName(properties, propertyInformation.Name); if (property == null) { continue; } var value = property.GetValue(obj, null); if (value == null) { continue; } //если это вложенный элемент var configElement = value as ConfigurationElement; if (configElement != null) { var childElement = GetChildElementByName(element, propertyInformation.Name); if (childElement != null) { childElement.Remove(); } childElement = AddElementToElementIfNotExist(element, propertyInformation.Name); FillXmlFromSection(configElement, childElement); } //если это атрибут else { ModifyAttributeToElement(element, propertyInformation.Name, value); } } }
internal void ApplyConfiguration(X509CertificateRecipientClientCredential creds) { if (creds == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("creds"); } PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo[ConfigurationStrings.TargetUri].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.StoreLocation].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.StoreName].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.X509FindType].ValueOrigin != PropertyValueOrigin.Default || propertyInfo[ConfigurationStrings.FindValue].ValueOrigin != PropertyValueOrigin.Default) { creds.SetScopedCertificate(this.StoreLocation, this.StoreName, this.X509FindType, this.FindValue, this.TargetUri); } }
internal void ApplyConfiguration(X509CertificateInitiatorServiceCredential cert) { if (cert == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("cert"); } PropertyInformationCollection properties = base.ElementInformation.Properties; if (properties["authentication"].ValueOrigin != PropertyValueOrigin.Default) { this.Authentication.ApplyConfiguration(cert.Authentication); } if (properties["certificate"].ValueOrigin != PropertyValueOrigin.Default) { this.Certificate.ApplyConfiguration(cert); } }
private void Validate() { PropertyInformationCollection properties = base.ElementInformation.Properties; if ((properties["index"].ValueOrigin == PropertyValueOrigin.Default) && (properties["type"].ValueOrigin == PropertyValueOrigin.Default)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(System.Runtime.Serialization.SR.GetString("ConfigMustSetTypeOrIndex"))); } if ((properties["index"].ValueOrigin != PropertyValueOrigin.Default) && (properties["type"].ValueOrigin != PropertyValueOrigin.Default)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(System.Runtime.Serialization.SR.GetString("ConfigMustOnlySetTypeOrIndex"))); } if ((properties["index"].ValueOrigin != PropertyValueOrigin.Default) && (this.Parameters.Count > 0)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(System.Runtime.Serialization.SR.GetString("ConfigMustOnlyAddParamsWithType"))); } }