️ Skoruba.AuditLogging:.NET Core的简单审计日志解决方案

️ Skoruba.AuditLogging:.NET Core的简单审计日志解决方案

AuditLogging️ Simple audit logging for .NET Core with EntityFramework Core项目地址:https://gitcode.com/gh_mirrors/au/AuditLogging

项目介绍

Skoruba.AuditLogging 是一个为.NET Core应用程序设计的简单审计日志框架,支持EntityFramework Core。该项目已经升级到.NET 6,提供了强大的日志记录功能,帮助开发者轻松实现用户和机器操作的审计日志记录。

项目技术分析

Skoruba.AuditLogging 利用了.NET Core和EntityFramework Core的核心功能,通过简单的配置和集成,即可在应用程序中实现详细的审计日志记录。它支持多种日志源和类别,能够记录包括用户操作、机器操作在内的多种事件,并将这些日志持久化到数据库中。

项目及技术应用场景

  • Web应用程序:记录用户在Web界面上的操作,如登录、数据修改等。
  • 后台服务或任务:记录机器或系统级别的操作,如定时任务执行、数据同步等。
  • 安全监控:通过审计日志监控系统安全,及时发现异常操作。

项目特点

  • 简单易用:通过几行代码即可集成到现有项目中。
  • 灵活配置:支持自定义日志源、类别、操作和主体信息。
  • 数据库支持:默认使用EntityFramework Core进行数据库操作,支持多种数据库。
  • 扩展性强:支持自定义日志存储方式,如文件、云服务等。

安装与使用

安装

dotnet add package Skoruba.AuditLogging.EntityFramework --version 1.1.0

配置

Web应用程序配置示例
services.AddAuditLogging(options =>
{
    options.Enabled = true;
    options.UseDefaultSubject = true;
    options.UseDefaultAction = true;
})
.AddDefaultHttpEventData(subjectOptions =>
    {
        subjectOptions.SubjectIdentifierClaim = ClaimsConsts.Sub;
        subjectOptions.SubjectNameClaim = ClaimsConsts.Name;
    },
    actionOptions =>
    {
        actionOptions.IncludeFormVariables = true;
    })
.AddDefaultStore(options => options.UseSqlServer(Configuration.GetConnectionString("ApplicationDbContext"),
    optionsSql => optionsSql.MigrationsAssembly(migrationsAssembly)))
.AddDefaultAuditSink();
机器应用程序配置示例
services.AddAuditLogging(options =>
{
    options.UseDefaultAction = false;
    options.Source = "Web"
})
.AddStaticEventSubject(subject =>
{
    subject.SubjectType = AuditSubjectTypes.Machine;
    subject.SubjectIdentifier = EmailServiceConsts.Name;
    subject.SubjectName = Environment.MachineName;
})
.AddDefaultEventAction()
.AddStore>(options =>
    options.UseSqlServer(configuration.GetConnectionString("ApplicationDbConnection"),
        optionsSql => optionsSql.MigrationsAssembly(migrationsAssembly)))
.AddDefaultAuditSink();

日志记录示例

// 创建假产品
var productDto = new ProductDto
{
    Id = Guid.NewGuid().ToString(),
    Name = Guid.NewGuid().ToString(),
    Category = Guid.NewGuid().ToString()
};

// 记录用户操作
var productGetUserEvent = new ProductGetEvent
{
    Product = productDto
};
await _auditEventLogger.LogEventAsync(productGetUserEvent);

// 记录机器操作
var productGetMachineEvent = new ProductGetEvent
{
    Product = productDto,
    SubjectType = AuditSubjectTypes.Machine,
    SubjectName = Environment.MachineName,
    SubjectIdentifier = Environment.MachineName,
    Action = new { Method = nameof(Get), Class = nameof(AuditController) }
};
await _auditEventLogger.LogEventAsync(productGetMachineEvent, options =>
{
    options.UseDefaultSubject = false;
    options.UseDefaultAction = false;
});

结论

Skoruba.AuditLogging 是一个强大且易于集成的审计日志框架,适用于各种.NET Core应用程序。无论是Web应用还是后台服务,它都能提供详细的日志记录功能,帮助开发者更好地监控和管理应用程序。立即尝试,提升您的应用安全性和可维护性!

AuditLogging️ Simple audit logging for .NET Core with EntityFramework Core项目地址:https://gitcode.com/gh_mirrors/au/AuditLogging

你可能感兴趣的:(️ Skoruba.AuditLogging:.NET Core的简单审计日志解决方案)