Пример #1
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     AuditConfig.Configure();
 }
        public static IServiceCollection AddAutoAudit([NotNull] this IServiceCollection services,
                                                      Action <IAuditConfigBuilder> configAction)
        {
            if (configAction is null)
            {
                throw new ArgumentNullException(nameof(configAction));
            }

            AuditConfig.Configure(configAction);
            return(services);
        }
Пример #3
0
        private void Init(IServiceProvider serviceProvider)
        {
            var userIdProvider = serviceProvider.GetService <IUserIdProvider>();

            AuditConfig.Configure(builder =>
            {
                builder.WithUserIdProvider(userIdProvider);
                builder.EnrichWithProperty("Application", ApplicationHelper.ApplicationName);
                builder.EnrichWithProperty("Host", Environment.MachineName);
            });
        }
Пример #4
0
        protected void Application_Start()
        {
            GlobalTrackingConfig.SetSoftDeletableCriteria <ISoftDeletable>(x => x.IsDeleted);
            EntityTracker.TrackAllProperties <ApplicationUser>();
            Database.SetInitializer(new DropCreateDatabaseIfModelChanges <ApplicationDbContext>());

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuditConfig.Configure();
        }
Пример #5
0
        private void EFAuditConfig(IApplicationBuilder applicationBuilder)
        {
            var userIdProvider = applicationBuilder.ApplicationServices
                                 .GetRequiredService <IUserIdProvider>();

            AuditConfig.Configure(builder =>
            {
                builder
                .EnrichWithProperty(nameof(ApplicationHelper.ApplicationName), ApplicationHelper.ApplicationName)
                .EnrichWithProperty("Host", Environment.MachineName)
                .WithUserIdProvider(userIdProvider)
                .IgnoreEntity <OperationLog>()
                .WithHttpContextInfo(applicationBuilder.ApplicationServices.GetRequiredService <IHttpContextAccessor>())
                ;
            });
        }
Пример #6
0
        private static void AutoAuditTest()
        {
            // 审计配置
            AuditConfig.Configure(builder =>
            {
                builder
                // 配置操作用户获取方式
                .WithUserIdProvider(EnvironmentAuditUserIdProvider.Instance.Value)
                //.WithUnModifiedProperty() // 保存未修改的属性,默认只保存发生修改的属性
                // 保存更多属性
                .EnrichWithProperty("MachineName", Environment.MachineName)
                .EnrichWithProperty(nameof(ApplicationHelper.ApplicationName), ApplicationHelper.ApplicationName)
                // 保存到自定义的存储
                .WithStore <AuditFileStore>()
                .WithStore <AuditFileStore>("logs0.log")
                // 忽略指定实体
                .IgnoreEntity <AuditRecord>()
                // 忽略指定实体的某个属性
                .IgnoreProperty <TestEntity>(t => t.CreatedAt)
                // 忽略所有属性名称为 CreatedAt 的属性
                .IgnoreProperty("CreatedAt")
                ;
            });

            DependencyResolver.TryInvokeService <TestDbContext>(dbContext =>
            {
                dbContext.Database.EnsureDeleted();
                dbContext.Database.EnsureCreated();
                var testEntity = new TestEntity()
                {
                    Extra     = new { Name = "Tom" }.ToJson(),
                    CreatedAt = DateTimeOffset.UtcNow,
                };
                dbContext.TestEntities.Add(testEntity);
                dbContext.SaveChanges();

                testEntity.CreatedAt = DateTimeOffset.Now;
                testEntity.Extra     = new { Name = "Jerry" }.ToJson();
                dbContext.SaveChanges();

                dbContext.Remove(testEntity);
                dbContext.SaveChanges();

                var testEntity1 = new TestEntity()
                {
                    Extra     = new { Name = "Tom1" }.ToJson(),
                    CreatedAt = DateTimeOffset.UtcNow,
                };
                dbContext.TestEntities.Add(testEntity1);
                var testEntity2 = new TestEntity()
                {
                    Extra     = new { Name = "Tom2" }.ToJson(),
                    CreatedAt = DateTimeOffset.UtcNow,
                };
                dbContext.TestEntities.Add(testEntity2);
                dbContext.SaveChanges();
            });
            DependencyResolver.TryInvokeService <TestDbContext>(dbContext =>
            {
                dbContext.Remove(new TestEntity()
                {
                    Id = 2
                });
                dbContext.SaveChanges();
            });
            // disable audit
            AuditConfig.DisableAudit();
            // enable audit
            // AuditConfig.EnableAudit();
        }