| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- //------------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
- namespace System.ServiceModel.Configuration
- {
- using System;
- using System.ServiceModel;
- using System.Configuration;
- using System.ServiceModel.Channels;
- using System.ServiceModel.Security;
- using System.Xml;
- using System.Security.Cryptography.X509Certificates;
- public sealed partial class X509ClientCertificateCredentialsElement : ConfigurationElement
- {
- public X509ClientCertificateCredentialsElement()
- {
- }
- [ConfigurationProperty(ConfigurationStrings.FindValue, DefaultValue = "")]
- [StringValidator(MinLength = 0)]
- public string FindValue
- {
- get { return (string)base[ConfigurationStrings.FindValue]; }
- set
- {
- if (String.IsNullOrEmpty(value))
- {
- value = String.Empty;
- }
- base[ConfigurationStrings.FindValue] = value;
- }
- }
- [ConfigurationProperty(ConfigurationStrings.StoreLocation, DefaultValue = X509CertificateInitiatorServiceCredential.DefaultStoreLocation)]
- [StandardRuntimeEnumValidator(typeof(StoreLocation))]
- public StoreLocation StoreLocation
- {
- get { return (StoreLocation)base[ConfigurationStrings.StoreLocation]; }
- set { base[ConfigurationStrings.StoreLocation] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.StoreName, DefaultValue = X509CertificateInitiatorServiceCredential.DefaultStoreName)]
- [StandardRuntimeEnumValidator(typeof(StoreName))]
- public StoreName StoreName
- {
- get { return (StoreName)base[ConfigurationStrings.StoreName]; }
- set { base[ConfigurationStrings.StoreName] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.X509FindType, DefaultValue = X509CertificateInitiatorServiceCredential.DefaultFindType)]
- [StandardRuntimeEnumValidator(typeof(X509FindType))]
- public X509FindType X509FindType
- {
- get { return (X509FindType)base[ConfigurationStrings.X509FindType]; }
- set { base[ConfigurationStrings.X509FindType] = value; }
- }
- public void Copy(X509ClientCertificateCredentialsElement from)
- {
- if (this.IsReadOnly())
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigReadOnly)));
- }
- if (null == from)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("from");
- }
- this.FindValue = from.FindValue;
- this.StoreLocation = from.StoreLocation;
- this.StoreName = from.StoreName;
- this.X509FindType = from.X509FindType;
- }
- internal void ApplyConfiguration(X509CertificateInitiatorServiceCredential creds)
- {
- if (creds == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("creds");
- }
- 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)
- {
- creds.SetCertificate(this.StoreLocation, this.StoreName, this.X509FindType, this.FindValue);
- }
- }
- }
- }
|