Отслеживание действий пользователя в приложении доступа к данным ASP.net - PullRequest
2 голосов
/ 19 июля 2010

Мне нужно регистрировать каждое пользовательское действие в базе данных, используя имя пользователя, вошедшего в мое приложение ASP.net, в качестве идентификатора в журнале.

Какой самый простой способ сделать это?

Полагаю, что для каждого вызова метода на моем уровне доступа к данным мне нужно регистрировать параметры этого вызова и имя пользователя, а затем вызывать новый метод "log event", который записывает детали вызова в таблицу. *

Я на правильном пути?

Ответы [ 2 ]

1 голос
/ 24 июля 2010

Существует три очевидных варианта: использовать триггеры, использовать SQL для входа в DAL или использовать log4net для входа в DAL.

Использование триггеров

Есливы используете триггеры, добавляете столбец LastUser к каждой таблице и делаете указанный столбец обязательным (т. е. NOT NULL с проверочным ограничением, что это не пустая строка).Вам понадобится столбец LastUser, доступный для кода в ваших триггерах, чтобы вы могли записать, кто что сделал.Вы не говорите, какую систему баз данных вы используете;некоторые не поддерживают триггеры или не поддерживают триггеры SELECT (нужно записывать выполняемые операторы SELECT?).

Журнал из DAL с использованием SQL

Есливы входите из своего DAL в базу данных, надеюсь, все ваши звонки проходят через какой-то центральный фрагмент кода.Если это так, то вы можете добавить свой единственный метод регистрации в этом разделе кода.Помните, что вы хотите обернуть все вызовы базы данных в транзакции, чтобы убедиться, что ваш журнал и фактические данные не синхронизируются.

Журнал из DAL с использованием Log4Net

Вы можете так же легко настроить log4net для записи всего доступа к данным.Log4net имеет возможность записывать записи журнала как в файлы журналов, так и в базы данных.Добавление log4net к существующему коду легко, а конфигурация относительно проста.

0 голосов
/ 19 июля 2010

Ну, здесь, где я работаю, мы ведем логирование на уровне базы данных.Всякий раз, когда пользователь выполняет операцию вставки, обновления, удаления, запускается триггер, и операция с соответствующими полями регистрируется для истории и аудита.Вероятно, не лучшим образом, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...