Журнал аудита веб-приложений ASP.NET

У меня есть требование, когда я должен поместить функцию журнала аудита в существующее приложение веб-форм Asp.net на С# с использованием SQL Server 2008. В этом приложении есть различные страницы, которые используют from 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)

Заранее спасибо...


person Bat_Programmer    schedule 30.05.2013    source источник
comment
разве вы не поддерживаете старые данные и новые данные?   -  person tariq    schedule 30.05.2013


Ответы (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

person Oscar    schedule 30.05.2013
comment
я использую наборы данных и адаптеры таблиц - person Bat_Programmer; 30.05.2013
comment
Это плохой дизайн, и вам придется писать код в каждом методе Inser-Update-Delete вашего DAL. - person Oscar; 30.05.2013
comment
ну вот как это, и мне нужны идеи по решению этого? - person Bat_Programmer; 30.05.2013
comment
Как я вижу, у вас есть два варианта: перепроектировать приложение, если в будущем произойдут подобные изменения, или написать код в каждом методе Inser-Update-Delete вашего DAL вручную. Цена, которую приходится платить за использование инструментов RAD для развивающихся приложений: ремонтопригодность становится головной болью. - person Oscar; 30.05.2013