Audit.NET 开源项目教程

Audit.NET 开源项目教程

Audit.NET An extensible framework to audit executing operations in .NET and .NET Core. Audit.NET 项目地址: https://gitcode.com/gh_mirrors/au/Audit.NET

1. 项目介绍

Audit.NET 是一个可扩展的框架,用于在 .NET 和 .NET Core 中审计执行的操作。它能够生成带有证据的审计日志,以便重建和检查影响特定操作或过程的活动。通过 Audit.NET,您可以生成有关正在执行的操作的跟踪信息,收集环境信息(如调用者用户 ID、机器名、方法名和异常),包括执行时间,并提供一个可扩展的机制来丰富日志和处理审计输出。

主要特性

  • 支持多种系统交互扩展,如 Entity Framework、MVC、WebAPI、WCF、文件系统、SignalR、MongoClient 和 HttpClient。
  • 提供多种输出扩展,支持将日志记录到 JSON 文件、事件日志、SQL、MySQL、PostgreSQL、RavenDB、MongoDB、AzureBlob、AzureTables、AzureCosmos、Redis、Elasticsearch、DynamoDB、UDP 数据报、Channels 等。
  • 包含输出包装器,方便封装其他数据提供程序,用于多种目的,如弹性或懒加载,例如 Polly、Lazy、Deferred 和 Conditional。

2. 项目快速启动

安装 NuGet 包

在 Package Manager Console 中运行以下命令安装 Audit.NET:

PM> Install-Package Audit.NET

创建审计范围

以下是一个简单的示例,展示如何创建和使用审计范围:

using Audit.Core;
using Audit.NET;

// 配置审计数据提供程序
Audit.Core.Configuration.DataProvider = new JsonFileDataProvider()
{
    FileName = "auditlogs.json"
};

// 创建审计范围
using (var scope = AuditScope.Create(new AuditScopeOptions()
{
    EventType = "Order:Update",
    TargetGetter = () => new { OrderId = 123, Status = "Shipped" },
    ExtraFields = new { User = "admin" }
}))
{
    // 执行操作
    // ...
}

配置审计事件

您可以通过 AuditScopeOptions 配置审计事件:

var options = new AuditScopeOptions()
{
    EventType = "Order:Create",
    TargetGetter = () => new { OrderId = 456, Status = "New" },
    ExtraFields = new { User = "user1" },
    DataProvider = new SqlDataProvider(connectionString: "YourConnectionString")
};

using (var scope = AuditScope.Create(options))
{
    // 执行操作
    // ...
}

3. 应用案例和最佳实践

应用案例

审计数据库操作

使用 Entity Framework 扩展审计数据库操作:

public class MyDbContext : AuditDbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
    {
    }

    public DbSet<Order> Orders { get; set; }
}

// 在操作中创建审计范围
using (var scope = AuditScope.Create("Order:Update", () => order))
{
    context.SaveChanges();
}
审计 Web API 请求

使用 WebAPI 扩展审计 Web API 请求:

public class MyApiController : ApiController
{
    [AuditApi(EventType = "API:Request", IncludeResponse = true)]
    public IHttpActionResult Get(int id)
    {
        // 处理请求
        return Ok();
    }
}

最佳实践

  • 集中配置:使用 IAuditScopeFactory 进行集中配置,确保所有审计范围的一致性。
  • 异常处理:确保在审计范围内捕获和处理异常,以避免丢失审计信息。
  • 性能优化:选择合适的数据提供程序和输出格式,以优化性能和存储。

4. 典型生态项目

Entity Framework Core

Audit.NET 提供了 Audit.EntityFramework.Core 扩展,用于审计 Entity Framework Core 的操作。

ASP.NET Core MVC

使用 Audit.Mvc.Core 扩展,可以轻松审计 ASP.NET Core MVC 中的请求和响应。

ASP.NET Core WebAPI

Audit.WebApi.Core 扩展允许您审计 ASP.NET Core Web API 的请求和响应。

SignalR

通过 Audit.SignalR 扩展,您可以审计 SignalR 的实时通信。

其他

  • Azure Blob Storage:使用 AzureBlobDataProvider 将审计日志存储在 Azure Blob Storage 中。
  • Elasticsearch:通过 ElasticsearchDataProvider 将审计日志索引到 Elasticsearch。

通过以上模块,您应该能够快速上手并有效地使用 Audit.NET 框架进行项目审计。希望这篇教程对您有所帮助!

Audit.NET An extensible framework to audit executing operations in .NET and .NET Core. Audit.NET 项目地址: https://gitcode.com/gh_mirrors/au/Audit.NET

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯晶辰Godfrey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值