Подключение аудита
Подключение аудита к существующей системе будет рассмотрено на примере.
Задача
Добавить аудирование создаваемых и удаляемых объектов в существующую систему. Также необходимо вести аудит изменения для класса Кредит
Диаграмма классов
Настройка аудита
Настройка базы данных
Для начала необходимо настроить базу данных аудита. Для этого форму настройки свойств стадии.
База аудита может храниться как в отдельной базе, так и в базе приложения. Это определяется настройкой БД аудита в БД приложения
. Если принято решение хранить данные вместе. Установим эту настройку, а также настройку Не удалять существующие таблицы
.
Сохранть настройки и закрыть форму.
Настройка стадии
Открыть форму настройки стадии и перейти на вкладку Настройка аудита
-
Нажать кнопку
Включить аудит во всех классах
(подробнее) -
Сохранить настройки и закрыть форму
Настройка классов
Аудит операций создания и удаления включается по умолчанию. Следовательно, чтобы выполнить поставленную задачу, необходимо включить аудит операции изменения для класса Кредит
.
Открть свойства класса Кредит
и установить настройку Вести аудит операции изменения
.
Сохранить настройки и закрыть форму.
Настройка класса со стереотипом Application
Генерация приложения
Чтобы сгенерировать приложение, необходимо:
- Привести в соответствие базу данных приложения
- Сгенерировать классы
- Скомпилировать классы
- Сгенерировать ASP.NET приложение
Результат
В проект добавились web-страницы для отображения аудита:
В каждый класс данных (класс со стереотипом Implementation) добавился класс AuditSettings, хранящий настройки аудита для этого класса.
Помимо этого, в классы добавились представления для аудита AuditView
, а также 4 новых поля: Creator
, CreateTime
, Editor
, EditTime
- последствия выставления настройки Добавить поля аудита (подробнее).
Просмотр операций аудита
Как уже упоминалось выше, в проекте появились web-страницы для просмотра данных аудита. По умолчанию файл конфигурации, отвечающий за эти страницы (файл лежит в папке forms\audit, изображен на рисунке выше), выглядит следующим образом:
<authorization>
<deny users="?"/>
<allow roles="admin" />
<deny users="*" />
</authorization>
Это означает, что доступ закрыт для всех пользователей, исключая пользователей с ролью admin (подробнее в MSDN)
Чтобы не заниматься конфигурированием системы полномочий, следует изменить файл конфигурации следующим образом:
<authorization>
<deny users="?"/>
</authorization>
Таким образом, доступ к этим страницам будет запрещен только неавторизованным пользователям.
Ссылки на страницу AuditEntityL.aspx
можно вынести на рабочий стол или просто ввести в адресную строку адрес страницы.
На форме можно увидеть стандартный WebObjectListView пока пустой, т.к. аудированных операций еще не было совершено.
Далее можно создать нового Клиента
, изменить существующий Кредит
, а затем обновим форму отображения данных аудита:
Как можно заметить, фиксируется время и тип операции; объект, над которым была произведена операция (его primaryKey); кем и откуда была произведена операция, а также результат выполнения операции.