1 //------------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //------------------------------------------------------------------------------
5 namespace System.ServiceModel.Configuration
7 using System.ComponentModel;
8 using System.ServiceModel.Channels;
9 using System.ServiceModel;
10 using System.ServiceModel.Description;
11 using System.Configuration;
12 using System.ServiceModel.Security;
14 public sealed partial class ServiceSecurityAuditElement : BehaviorExtensionElement
16 public ServiceSecurityAuditElement()
20 [ConfigurationProperty(ConfigurationStrings.AuditLogLocation, DefaultValue = ServiceSecurityAuditBehavior.defaultAuditLogLocation)]
21 [ServiceModelEnumValidator(typeof(AuditLogLocationHelper))]
22 public AuditLogLocation AuditLogLocation
24 get { return (AuditLogLocation)base[ConfigurationStrings.AuditLogLocation]; }
25 set { base[ConfigurationStrings.AuditLogLocation] = value; }
28 [ConfigurationProperty(ConfigurationStrings.SuppressAuditFailure, DefaultValue = ServiceSecurityAuditBehavior.defaultSuppressAuditFailure)]
29 public bool SuppressAuditFailure
31 get { return (bool)base[ConfigurationStrings.SuppressAuditFailure]; }
32 set { base[ConfigurationStrings.SuppressAuditFailure] = value; }
35 [ConfigurationProperty(ConfigurationStrings.ServiceAuthorizationAuditLevel, DefaultValue = ServiceSecurityAuditBehavior.defaultServiceAuthorizationAuditLevel)]
36 [ServiceModelEnumValidator(typeof(AuditLevelHelper))]
37 public AuditLevel ServiceAuthorizationAuditLevel
39 get { return (AuditLevel)base[ConfigurationStrings.ServiceAuthorizationAuditLevel]; }
40 set { base[ConfigurationStrings.ServiceAuthorizationAuditLevel] = value; }
43 [ConfigurationProperty(ConfigurationStrings.MessageAuthenticationAuditLevel, DefaultValue = ServiceSecurityAuditBehavior.defaultMessageAuthenticationAuditLevel)]
44 [ServiceModelEnumValidator(typeof(AuditLevelHelper))]
45 public AuditLevel MessageAuthenticationAuditLevel
47 get { return (AuditLevel)base[ConfigurationStrings.MessageAuthenticationAuditLevel]; }
48 set { base[ConfigurationStrings.MessageAuthenticationAuditLevel] = value; }
51 public override void CopyFrom(ServiceModelExtensionElement from)
54 ServiceSecurityAuditElement source = (ServiceSecurityAuditElement)from;
55 #pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
56 this.AuditLogLocation = source.AuditLogLocation;
57 this.SuppressAuditFailure = source.SuppressAuditFailure;
58 this.ServiceAuthorizationAuditLevel = source.ServiceAuthorizationAuditLevel;
59 this.MessageAuthenticationAuditLevel = source.MessageAuthenticationAuditLevel;
62 protected internal override object CreateBehavior()
64 ServiceSecurityAuditBehavior behavior = new ServiceSecurityAuditBehavior();
65 behavior.AuditLogLocation = this.AuditLogLocation;
66 behavior.SuppressAuditFailure = this.SuppressAuditFailure;
67 behavior.ServiceAuthorizationAuditLevel = this.ServiceAuthorizationAuditLevel;
68 behavior.MessageAuthenticationAuditLevel = this.MessageAuthenticationAuditLevel;
72 public override Type BehaviorType
74 get { return typeof(ServiceSecurityAuditBehavior); }