Полуавтоматический аудиторский след, не загрязняя интерфейс объектаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Полуавтоматический аудиторский след, не загрязняя интерфейс объекта

Сообщение Anonymous »

В моем основном проекте ASP.NET у меня есть несколько объектов, для которых я хочу записать следы аудита. Автоматическое решение для аудита, которое зацепляется в механизм обновления EF Core, широко известно и хорошо описано. Тем не менее, я хотел бы иметь что -то более индивидуальное для каждой организации. Студент может зарегистрироваться в курс, снять экзамен или сдать его с определенной оценкой. Для этого класс имеет несколько методов, таких как recroll (курс курса) , failexam (экзамен) и passexam (экзамен, строковая оценка) для простоты и краткости.
Я хочу, чтобы выделенная аудитория для студентов (с курсом Sod> Sode> Sode> Sope-Spectific, что не соблюдает, что это не так, как это не так, как это, не так, как это не так, как это, не так, как это. «Тупые» изменяются для каждого свойства, но более значимых и специфичных для сущностей событий, таких как: < /p>



studentId < /th>
< /th> < /th> < /th> < /th> < /th> < /th> < /th> < /th> < /th> < /th> /> userId < /th>
Подробности < /th>
< /tr>
< /thead>


s001 < /td>
rellm /> s001 < /td>
{"courseId": "c1732"} < /td>
< /tr>

s001 < /td>
relllm 10: 02: 00Z < /td>
S001 < /td>
{"courceId": "c7620"} < /td>
< /tr>

s002 < /td>
examresult < /td>
< /td> examresult < /td>

/> 2025-08-15 11: 24: 36Z < /td>
p0218 < /td>
{"exmepl": "e35687", "Результат": "Pass", "Grade": "28"} < /td>
< /tr>
< /tbody>
/>
Большая часть этого может быть реализована со студентом AudAudittrail (из которого у студента есть коллекция). Методы, которые манипулируют объектом, также обвиняются в создании аудиторского следа (отсюда и «полуавтоматическое» имя), что является приемлемым компромиссом при рассмотрении более высокого значения, которое имеет след. Коллекция сохраняется в базе данных с помощью EF Core. Это идентификатор аутентифицированного пользователя, который выполняет действие для студента (в примере выше, это может быть сами студент, профессор, записывающий экзамен, сотрудник университета и т. Д.). Чтобы записать это, я выяснил несколько решений, но ни одно из них не кажется элегантным: < /p>

[*] Передайте IDID < /code> методу манипуляции с сущностью. Если должна быть записана другая информация вне домена (скажем, сервер, который выполнял действие), это только ухудшается. IT. Кроме того, это вводит необходимость внедрения Сервиса.


Разделите активность Audit Trail в выделенный класс службы, давайте назовем его аудитором с помощью метода записи (...) (и записи (...) etc). /> Преимущество: аудитор позаботится о получении аутентифицированного пользователя и/или другой информации, выходящей за преть, а не объекта Entity. /> < /li>
Реализуйте аудиторский след за пределами класса объекта, например, в контроллере. Контроллер (или другой клиент-код) должен позаботиться о аудировании каждого действия, которое он выполняет на объекте. /> < /ul>
< /li>
< /ol>
Есть ли способ достичь аудиторского следа, такой как тот, который я проиллюстрировал выше, не загрязняя класс сущности, и с гарантией, что каждое действие записано? журналы вместо аудита Trails .

Подробнее здесь: https://stackoverflow.com/questions/797 ... -interface
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»