AuditLogging 项目教程
项目地址:https://gitcode.com/gh_mirrors/au/AuditLogging
1. 项目介绍
AuditLogging 是一个用于 .NET Core 的简单审计日志记录库,支持 EntityFramework Core。它旨在帮助开发者在应用程序中轻松实现审计日志功能,记录用户和机器的操作行为,以便后续分析和追踪。
2. 项目快速启动
安装
首先,通过 NuGet 安装 Skoruba.AuditLogging.EntityFramework
包:
dotnet add package Skoruba.AuditLogging.EntityFramework --version 2.0.0
配置
在 Startup.cs
文件中配置审计日志服务:
public void ConfigureServices(IServiceCollection services)
{
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();
}
使用
在代码中记录审计事件:
// 创建一个假的产品
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;
});
3. 应用案例和最佳实践
应用案例
- 用户行为追踪:在电子商务平台中,记录用户的浏览、购买、评论等行为,以便分析用户行为模式。
- 系统操作日志:在后台管理系统中,记录管理员的操作行为,确保系统的安全性和可追溯性。
- 机器任务日志:在自动化任务系统中,记录机器执行的任务和操作,便于故障排查和性能优化。
最佳实践
- 数据分类:根据业务需求,将审计日志数据分类存储,便于后续查询和分析。
- 定期清理:设置定期清理策略,避免审计日志数据过多占用存储空间。
- 安全性:确保审计日志的存储和访问权限,防止敏感信息泄露。
4. 典型生态项目
- EntityFramework Core:作为数据存储和查询的基础框架,支持审计日志的持久化。
- ASP.NET Core:用于构建 Web 应用程序,支持用户操作的审计日志记录。
- Hangfire:用于后台任务管理,支持机器操作的审计日志记录。
通过以上模块的介绍,您可以快速了解并使用 AuditLogging 项目,实现应用程序的审计日志功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考