如何使用 EF Core 在 ASP.NET Core 中实现审核跟踪

💡 原文中文,约11200字,阅读约需27分钟。
📝

内容提要

本文介绍了如何使用EF Core在ASP.NET Core应用程序中实现审计跟踪,通过创建审计日志实体并配置EF Core来存储更改的详细信息。然后通过覆盖SaveChangesAsync方法实现审计跟踪,最后通过记录已创建、更新或删除的实体来创建审计跟踪记录。

🎯

关键要点

  • 现代 Web 应用程序需要跟踪数据更改以满足监控、合规性和调试需求。
  • 本文介绍如何在 ASP.NET Core 应用程序中使用 EF Core 实现审计跟踪。
  • 审计跟踪允许开发人员查看数据更改的历史记录,包括谁进行了更改、何时进行了更改以及更改的内容。
  • 实现审计跟踪的第一步是创建一个审计日志实体,用于存储更改的详细信息。
  • 审计日志实体应包含实体类型、主键、已更改属性的列表、旧值、新值和更改的时间戳。
  • 可以为每个实体手动实施审计跟踪,或使用自动应用于所有实体的实施。
  • 在 EF Core 中配置审计跟踪实体时,需要定义审计日志的属性和数据库表结构。
  • 使用 json 列来表示已更改的列、旧值和新值,以便于存储和检索。
  • 需要实现一个接口以获取当前用户的标识符,并在 DbContext 中覆盖 SaveChangesAsync 方法以创建审计跟踪记录。
  • 在 SaveChangesAsync 方法中,首先设置可审计属性,然后创建审计跟踪记录并保存到数据库。
  • 审计跟踪记录可以包含普通属性、引用属性和导航属性的更改信息。
  • 可以通过过滤敏感字段来排除不需要审计的属性,例如 PasswordHash。
  • 最终可以运行应用程序以查看审计跟踪的实际效果,审计属性将被记录在 audit_trails 表中。
➡️

继续阅读