SslStreamSecurityElement.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.ServiceModel.Channels;
  8. public sealed partial class SslStreamSecurityElement : BindingElementExtensionElement
  9. {
  10. public SslStreamSecurityElement()
  11. {
  12. }
  13. [ConfigurationProperty(
  14. ConfigurationStrings.RequireClientCertificate, DefaultValue = TransportDefaults.RequireClientCertificate)]
  15. public bool RequireClientCertificate
  16. {
  17. get { return (bool)base[ConfigurationStrings.RequireClientCertificate]; }
  18. set { base[ConfigurationStrings.RequireClientCertificate] = value; }
  19. }
  20. public override void ApplyConfiguration(BindingElement bindingElement)
  21. {
  22. base.ApplyConfiguration(bindingElement);
  23. SslStreamSecurityBindingElement sslBindingElement =
  24. (SslStreamSecurityBindingElement)bindingElement;
  25. sslBindingElement.RequireClientCertificate = this.RequireClientCertificate;
  26. }
  27. protected internal override BindingElement CreateBindingElement()
  28. {
  29. SslStreamSecurityBindingElement sslBindingElement
  30. = new SslStreamSecurityBindingElement();
  31. this.ApplyConfiguration(sslBindingElement);
  32. return sslBindingElement;
  33. }
  34. public override Type BindingElementType
  35. {
  36. get { return typeof(SslStreamSecurityBindingElement); }
  37. }
  38. public override void CopyFrom(ServiceModelExtensionElement from)
  39. {
  40. base.CopyFrom(from);
  41. SslStreamSecurityElement source = (SslStreamSecurityElement)from;
  42. #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
  43. this.RequireClientCertificate = source.RequireClientCertificate;
  44. }
  45. protected internal override void InitializeFrom(BindingElement bindingElement)
  46. {
  47. base.InitializeFrom(bindingElement);
  48. SslStreamSecurityBindingElement sslBindingElement
  49. = (SslStreamSecurityBindingElement)bindingElement;
  50. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.RequireClientCertificate, sslBindingElement.RequireClientCertificate);
  51. }
  52. }
  53. }