ServiceSecurityAuditBehavior(ServiceSecurityAuditBehavior behavior) { this.auditLogLocation = behavior.auditLogLocation; this.suppressAuditFailure = behavior.suppressAuditFailure; this.serviceAuthorizationAuditLevel = behavior.serviceAuthorizationAuditLevel; this.messageAuthenticationAuditLevel = behavior.messageAuthenticationAuditLevel; }
public static void Main(string[] args) { Uri address = new Uri("http://localhost:8001/TradeService"); WSHttpBinding binding = new WSHttpBinding(); Type contract = typeof(ExchangeService.ITradeService); ServiceHost host = new ServiceHost(typeof(TradeService)); host.AddServiceEndpoint(contract, binding, address); // Add Auditing to the service ServiceSecurityAuditBehavior auditProvider = host.Description.Behaviors.Find<ServiceSecurityAuditBehavior>(); if (auditProvider == null) { auditProvider = new ServiceSecurityAuditBehavior(); } auditProvider.AuditLogLocation = AuditLogLocation.Application; auditProvider.MessageAuthenticationAuditLevel = AuditLevel.SuccessOrFailure; auditProvider.ServiceAuthorizationAuditLevel = AuditLevel.SuccessOrFailure; host.Description.Behaviors.Add(auditProvider); host.Open(); Console.WriteLine("The WCF Management trading service is available."); Console.ReadKey(); }
protected internal override object CreateBehavior() { ServiceSecurityAuditBehavior behavior = new ServiceSecurityAuditBehavior(); behavior.AuditLogLocation = this.AuditLogLocation; behavior.SuppressAuditFailure = this.SuppressAuditFailure; behavior.ServiceAuthorizationAuditLevel = this.ServiceAuthorizationAuditLevel; behavior.MessageAuthenticationAuditLevel = this.MessageAuthenticationAuditLevel; return behavior; }
void IServiceBehavior.Validate(ServiceDescription description,ServiceHostBase serviceHostBase) { m_SecurityBehavior.UseAspNetProviders = UseAspNetProviders; m_SecurityBehavior.ApplicationName = ApplicationName; m_SecurityBehavior.ImpersonateAll = ImpersonateAll; m_SecurityBehavior.Validate(description,serviceHostBase); if(SecurityAuditEnabled) { ServiceSecurityAuditBehavior securityAudit = serviceHostBase.Description.Behaviors.Find<ServiceSecurityAuditBehavior>(); if(securityAudit == null) { securityAudit = new ServiceSecurityAuditBehavior(); securityAudit.MessageAuthenticationAuditLevel = AuditLevel.SuccessOrFailure; securityAudit.ServiceAuthorizationAuditLevel = AuditLevel.SuccessOrFailure; serviceHostBase.Description.Behaviors.Add(securityAudit); } } }