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 )); }
/// <summary> /// Initializes the view model. /// </summary> protected ViewModelBase() { if (CatelEnvironment.IsInDesignMode) { return; } UniqueIdentifier = UniqueIdentifierHelper.GetUniqueIdentifier(GetType()); ViewModelConstructionTime = DateTime.Now; AuditingHelper.RegisterViewModel(this); _viewModelCommandManager = ViewModelCommandManager.Create(this); _viewModelCommandManager.AddHandler(async(viewModel, propertyName, command, commandParameter) => { _catelCommandExecuted.SafeInvoke(this, () => new CommandExecutedEventArgs((ICatelCommand)command, commandParameter, propertyName)); }); ViewModelManager.RegisterViewModelInstance(this); }
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; }
/// <summary> /// Initializes the view model. /// </summary> protected ViewModelBase() { if (Catel.Environment.IsInDesignMode) { return; } UniqueIdentifier = UniqueIdentifierHelper.GetUniqueIdentifier(GetType()); ViewModelConstructionTime = DateTime.Now; AuditingHelper.RegisterViewModel(this); _viewModelCommandManager = ViewModelCommandManager.Create(this); _viewModelCommandManager.AddHandler((viewModel, propertyName, command, commandParameter) => _catelCommandExecuted.SafeInvoke(this, new CommandExecutedEventArgs((ICatelCommand)command, commandParameter, propertyName))); ServiceLocator = IoCConfiguration.DefaultServiceLocator; DependencyResolver = ServiceLocator.ResolveType <IDependencyResolver>(); RegisterViewModelServices(ServiceLocator); ViewModelManager.RegisterViewModelInstance(this); }
protected virtual bool ShouldSaveEntityHistory(EntityEntry entityEntry, bool defaultValue = false) { if (entityEntry.State == EntityState.Detached || entityEntry.State == EntityState.Unchanged) { return(false); } var entityType = entityEntry.Metadata.ClrType; if (!EntityHelper.IsEntity(entityType)) { return(false); } if (AuditingHelper.IsEntityHistoryEnabled(entityType)) { return(true); } return(defaultValue); }
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 )); }
/// <summary> /// Constructs the step /// </summary> public OutgoingAuditingStep(AuditingHelper auditingHelper, ITransport transport) { _auditingHelper = auditingHelper; _transport = transport; }
/// <summary> /// Constructs the step /// </summary> public IncomingAuditingStep(AuditingHelper auditingHelper, ITransport transport, IRebusTime rebusTime) { _auditingHelper = auditingHelper; _transport = transport; _rebusTime = rebusTime; }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { IAuditingConfiguration configuration = _provider.GetRequiredService <IAuditingConfiguration>(); if (!ShouldSaveAudit(context, configuration)) { await next(); return; } using (CrossCuttingConcerns.Applying(context.Controller, CrossCuttingConcerns.Auditing)) { IAuditStore store = _provider.GetService <IAuditStore>(); IFunction function = context.GetExecuteFunction(); //var auditInfo = store.CreateAuditInfo( // context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(), // context.ActionDescriptor.AsControllerActionDescriptor().MethodInfo, // context.ActionArguments //); Type type = context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(); List <Type> ignoredTypes = configuration.IgnoredTypes; AuditOperationEntry operation = new AuditOperationEntry { FunctionName = function.Name, ClientIpAddress = context.HttpContext.GetClientIp(), UserAgent = context.HttpContext.Request.Headers["User-Agent"].FirstOrDefault(), CreatedTime = DateTime.Now, ServiceName = type != null ? type.FullName : "", Parameters = ConvertArgumentsToJson(context.ActionArguments, ignoredTypes), }; if (context.HttpContext.User.Identity.IsAuthenticated && context.HttpContext.User.Identity is ClaimsIdentity identity) { operation.UserId = identity.GetUserId(); operation.UserName = identity.GetUserName(); } var stopwatch = Stopwatch.StartNew(); ActionExecutedContext result = null; try { result = await next(); if (result.Exception != null && !result.ExceptionHandled) { operation.Exception = result.Exception; } } catch (Exception ex) { operation.Exception = ex; throw; } finally { stopwatch.Stop(); operation.Elapsed = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); if (configuration.SaveReturnValues && result != null) { switch (result.Result) { case ObjectResult objectResult: operation.ReturnValue = AuditingHelper.Serialize(objectResult.Value, ignoredTypes); break; case JsonResult jsonResult: operation.ReturnValue = AuditingHelper.Serialize(jsonResult.Value, ignoredTypes); break; case ContentResult contentResult: operation.ReturnValue = contentResult.Content; break; case AjaxResult ajaxResult: operation.ReturnValue = ajaxResult.Content; break; } } await store.SaveAsync(operation); } } }
private bool ShouldSaveAudit(ActionExecutingContext actionContext, IAuditingConfiguration configuration) { return(AuditingHelper.ShouldSaveAudit(configuration, actionContext.HttpContext.User, actionContext.GetExecuteFunction(), actionContext.ActionDescriptor.GetMethodInfo())); }