private bool ShouldSaveAudit(ActionExecutingContext filterContext)
        {
            var currentMethodInfo = filterContext.ActionDescriptor.GetMethodInfoOrNull();

            if (currentMethodInfo == null)
            {
                return(false);
            }

            if (_auditingConfiguration == null)
            {
                return(false);
            }

            if (!_auditingConfiguration.MvcControllers.IsEnabled)
            {
                return(false);
            }

            if (filterContext.IsChildAction && !_auditingConfiguration.MvcControllers.IsEnabledForChildActions)
            {
                return(false);
            }

            return(AuditingHelper.ShouldSaveAudit(
                       currentMethodInfo,
                       _auditingConfiguration,
                       AbpSession,
                       true
                       ));
        }
        private bool ShouldSaveAudit(ActionExecutingContext filterContext)
        {
            if (!_auditingConfiguration.IsEnabled || !_auditingConfiguration.MvcControllers.IsEnabled)
            {
                return(false);
            }

            return(AuditingHelper.ShouldSaveAudit(
                       filterContext.ActionDescriptor.GetMethodInfo(),
                       _auditingConfiguration,
                       AbpSession,
                       true
                       ));
        }
        private bool ShouldSaveAudit(HttpActionContext context)
        {
            if (!_auditingConfiguration.IsEnabled)
            {
                return(false);
            }

            if (context.ActionDescriptor.IsDynamicAbpAction())
            {
                return(false);
            }

            return(AuditingHelper.ShouldSaveAudit(
                       context.ActionDescriptor.GetMethodInfoOrNull(),
                       _auditingConfiguration,
                       AbpSession,
                       true
                       ));
        }
예제 #4
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            IServiceProvider provider = context.HttpContext.RequestServices;
            IFunction        function = context.GetExecuteFunction();

            if (function == null)
            {
                return;
            }
            ScopedDictionary dict = provider.GetService <ScopedDictionary>();

            dict.Function = function;
            // 数据权限有效角色,即有当前功能权限的角色
            IFunctionAuthorization functionAuthorization = provider.GetService <IFunctionAuthorization>();
            ClaimsPrincipal        principal             = context.HttpContext.User;

            string[] roleName = functionAuthorization.GetOkRoles(function, principal);
            dict.DataAuthValidRoleNames = roleName;
            IAuditingConfiguration configuration = provider.GetRequiredService <IAuditingConfiguration>();

            if (!AuditingHelper.ShouldSaveAudit(configuration, principal, function, context.ActionDescriptor.GetMethodInfo()))
            {
                return;
            }
            AuditOperationEntry operation = new AuditOperationEntry
            {
                FunctionName    = function.Name,
                ClientIpAddress = context.HttpContext.GetClientIp(),
                UserAgent       = context.HttpContext.Request.Headers["User-Agent"].FirstOrDefault(),
                CreatedTime     = DateTime.Now
            };

            if (principal.Identity.IsAuthenticated && principal.Identity is ClaimsIdentity identity)
            {
                operation.UserId   = identity.GetUserId();
                operation.UserName = identity.GetUserName();
                operation.NickName = identity.GetNickName();
            }

            dict.AuditOperation = operation;
        }
예제 #5
0
        private bool ShouldSaveAudit(ActionExecutingContext filterContext)
        {
            if (AuditingConfiguration == null)
            {
                return(false);
            }

            if (!AuditingConfiguration.MvcControllers.IsEnabled)
            {
                return(false);
            }

            if (filterContext.IsChildAction && !AuditingConfiguration.MvcControllers.IsEnabledForChildActions)
            {
                return(false);
            }

            return(AuditingHelper.ShouldSaveAudit(
                       GetMethodInfo(filterContext.ActionDescriptor),
                       AuditingConfiguration,
                       AbpSession,
                       true
                       ));
        }
예제 #6
0
 private bool ShouldSaveAudit(ActionExecutingContext actionContext, IAuditingConfiguration configuration)
 {
     return(AuditingHelper.ShouldSaveAudit(configuration, actionContext.HttpContext.User, actionContext.GetExecuteFunction(), actionContext.ActionDescriptor.GetMethodInfo()));
 }