【问题标题】:ASP.NET Web Application Audit LogASP.NET Web 应用程序审核日志
【发布时间】:2013-05-25 16:28:05
【问题描述】:

我有一个要求,我必须使用 SQL Server 2008 将审计日志功能放在 C# 中的现有 Asp.net Web Forms 应用程序中。此应用程序中有多个页面使用 formviews、listviews、gridviews插入、更新和删除数据。要求是使用已修改/删除的数据、用户详细信息和时间戳来捕获其中每 3 个事件

我想要 想法/建议,了解如何轻松实现此功能(应用程序端的代码)并仅使用一个 AuditLog 表(数据库端) 。这是我最初的表格设计:

- AuditId uniqueidentifier
- TableName varchar(100)
- RecordId varchar(100) (some tables have int as primary and some have guid)
- Action char(1) (I - insert, U - update, D - delete)
- RecordData varchar(MAX) (dump all data for that record, not sure about this field, need help??)
- ActionDate datetime 
- ActionedBy varchar(20) (user)

提前谢谢...

【问题讨论】:

  • 你不是在维护旧数据和新数据吗?

标签: c# asp.net sql-server-2008 webforms audit-logging


【解决方案1】:

您使用什么技术访问数据?使用 EF,您可以处理 SavingChanges 事件:

http://www.codeproject.com/Articles/34491/Implementing-Audit-Trail-using-Entity-Framework-Pa

使用 NHibernate,实现 IInterceptor:

http://nhforge.org/wikis/howtonh/creating-an-audit-log-using-nhibernate-events.aspx

【讨论】:

  • 我正在使用数据集和表格适配器
  • 这是一个糟糕的设计,会让您在 DAL 的每个 Inser-Update-Delete 方法中编写代码。
  • 嗯,事情就是这样,我需要解决这个问题的想法吗?
  • 在我看来,您有两个选择:如果将来会发生此类更改,则重新设计应用程序,或者在 DAL 的每个 Inser-Update-Delete 方法中手动编写代码。当您将 RAD 工具用于不断发展的应用程序时要付出的代价是什么:可维护性成为一个令人头疼的问题。
猜你喜欢
  • 2019-03-28
  • 2018-10-27
  • 1970-01-01
  • 2013-02-28
  • 2023-04-08
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
相关资源
最近更新 更多