/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="audit"></param> /// <param name="auditAction"></param> /// <returns></returns> protected virtual bool ShouldIntercept(AspectContext context, out AuditInfo audit, out AuditActionInfo auditAction) { audit = null; auditAction = null; if (CrossCuttingConcerns.IsApplied(context.Implementation, Concerns)) { return(false); } if (context.ServiceMethod.AttributeExists <DisableAuditingAttribute>() || context.ImplementationMethod.AttributeExists <DisableAuditingAttribute>()) { return(false); } var auditScope = _auditingManager.Current; if (auditScope == null) { return(false); } if (!_auditingHelper.ShouldSaveAudit(context.ImplementationMethod, true) && !_auditingHelper.ShouldSaveAudit(context.ServiceMethod, true)) { return(false); } audit = auditScope.Info; auditAction = _auditingHelper.CreateAuditAction( context.Implementation.GetType(), context.ImplementationMethod, context.Parameters ); return(true); }
public void CreateAuditAction() { var type = typeof(NonAuditingClassWithAuditedAttribute); var method = type.GetMethod("Action"); var actual = _auditingHelper.CreateAuditAction(type, method, new object[] { "Test", 18 }); actual.ServiceName.ShouldBe(type.FullName); actual.MethodName.ShouldBe(method.Name); actual.Parameters.ShouldBe("{\"name\":\"Test\",\"age\":18}"); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="audit"></param> /// <param name="auditAction"></param> /// <returns></returns> protected virtual bool ShouldIntercept(IMethodInvocation context, out AuditInfo audit, out AuditActionInfo auditAction) { audit = null; auditAction = null; if (!_options.IsEnabled) { return(false); } if (!(_options.IsEnabledForAnonymousUsers || (_principalAccessor.Principal?.Identity?.IsAuthenticated ?? false))) { return(false); } if (CrossCuttingConcerns.IsApplied(context.TargetObject, Concerns)) { return(false); } if (context.Method.AttributeExists <AuditedAttribute>()) { return(true); } if (context.Method.AttributeExists <DisableAuditingAttribute>()) { return(false); } var auditScope = _auditingManager.Current; if (auditScope == null) { return(false); } if (!_auditingHelper.ShouldSaveAudit(context.Method, true)) { return(false); } audit = auditScope.Info; auditAction = _auditingHelper.CreateAuditAction( context.TargetObject.GetType(), context.Method, context.Arguments ); return(true); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="audit"></param> /// <param name="auditAction"></param> /// <returns></returns> protected virtual bool ShouldIntercept(AspectContext context, out AuditInfo audit, out AuditActionInfo auditAction) { audit = null; auditAction = null; if (_options.IsEnabled == false) { return(false); } if (!(_options.IsEnabledForAnonymousUsers || (_principalAccessor.Principal?.Identity?.IsAuthenticated ?? false))) { return(false); } if (CrossCuttingConcerns.IsApplied(context.Implementation, Concerns)) { return(false); } if (context.ServiceMethod.AttributeExists <DisableAuditingAttribute>() || context.ImplementationMethod.AttributeExists <DisableAuditingAttribute>()) { return(false); } var auditScope = _auditingManager.Current; if (auditScope == null) { return(false); } if (!_auditingHelper.ShouldSaveAudit(context.ImplementationMethod, true) && !_auditingHelper.ShouldSaveAudit(context.ServiceMethod, true)) { return(false); } audit = auditScope.Info; auditAction = _auditingHelper.CreateAuditAction( context.Implementation.GetType(), context.ImplementationMethod, context.Parameters ); return(true); }
private bool ShouldSaveAudit(ActionExecutingContext context, out AuditInfo auditLog, out AuditActionInfo auditLogAction) { auditLog = null; auditLogAction = null; if (!Options.IsEnabled) { return(false); } if (!Options.IsAuditingController()) { return(false); } if (!context.ActionDescriptor.IsControllerAction()) { return(false); } var auditLogScope = _auditingManager.Current; if (auditLogScope == null) { return(false); } if (!_auditingHelper.ShouldSaveAudit(context.ActionDescriptor.GetMethodInfo(), true)) { return(false); } auditLog = auditLogScope.Info; auditLogAction = _auditingHelper.CreateAuditAction( context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(), context.ActionDescriptor.AsControllerActionDescriptor().MethodInfo, context.ActionArguments ); return(true); }
private bool ShouldSaveAudit(PageHandlerExecutingContext context, out AuditInfo auditLog, out AuditActionInfo auditLogAction) { auditLog = null; auditLogAction = null; if (!Options.IsEnabled) { return(false); } if (!Options.IsAuditingPage()) { return(false); } if (!(context.ActionDescriptor is CompiledPageActionDescriptor)) { return(false); } var auditLogScope = _auditingManager.Current; if (auditLogScope == null) { return(false); } if (!_auditingHelper.ShouldSaveAudit(context.HandlerMethod.MethodInfo, true)) { return(false); } auditLog = auditLogScope.Info; auditLogAction = _auditingHelper.CreateAuditAction( context.ActionDescriptor.HandlerTypeInfo, context.HandlerMethod.MethodInfo, context.HandlerArguments ); return(true); }