Мне нужно знать, какой пользователь удалил файл в файловой системе из кода C#. Только одна идея заключается в использовании аудита, но она кажется очень медленной ...Как я могу получить пользователя, который удалил файл?
ответ
Вы можете использовать событие FileSystemWatcher.Deleted
для захвата удалений, происходящих в файловой системе.
В зависимости от приложения, вы можете в этот момент также узнать, какой пользователь вызвал это событие (он не является частью FileSystemEventArgs
).
. Я использую watcher, но когда я пытаюсь получить имя пользователя, вот так: System.Security.AccessControl.FileSecurity sec = new FileSecurity (Path, System.Security.AccessControl.AccessControlSections.Owner); return sec.GetOwner (typeof (System.Security.Principal.NTAccount)). Значение; выдает исключение из-за того, что он не может определить пользователя – user295518
@user: Попробуйте 'WindowsIdentity.GetCurrent(). Имя' http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity. aspx –
Я не знаю, может ли это быть извлечено из файловой системы, но одним из возможных способов является использование объекта av FileSystemWatcher для запуска события в Deleted. Недостатком является то, что вам нужно, чтобы приложение-наблюдатель работало все время. Один из преимуществ заключается в том, что вы можете контролировать только spesific-папку, если это возможно.
кажется, что FileSystemWatcher не предоставляет информацию о пользователе, который удалил файл ... – user295518
Нет, но я, возможно, мог бы получить доступ через файл. Вам нужно будет получить пользователя, который изменил файл, а не владельца. Но в любом случае файл, вероятно, уже удален. Вот почему вы получаете исключение, я думаю. –
Возможно, вы могли бы выяснить, как получить доступ к файловой информации о удаленном файле из этого исходного кода? http://ntfsundelete.com/downloads/ –
- 1. найти пользователя, который удалил запись
- 2. Показать пользователя, который удалил данные
- 3. Как восстановить файл, который я удалил в git
- 4. OnPageChangeListener - как получить идентификатор фрагмента, который я только что удалил?
- 5. Я удалил пользователя «www-data», как я могу восстановить один и тот же файл?
- 6. Я удалил свой файл Application.log
- 7. Как я могу отследить пользователя, который удалил все мои ветви в git
- 8. Как я могу получить последнего пользователя, который создал последнюю тему
- 9. Удалил ли я моего главного пользователя RDS?
- 10. , который удалил таблицу SQL?
- 11. Как вернуть файл, который удалил мой SVN-клиент?
- 12. Как удалить перспективу Eclipse для плагина, который я удалил?
- 13. Mercurial удалил необработанный файл
- 14. Как я могу получить имя пользователя?
- 15. Как я могу получить имя пользователя ПК?
- 16. Как я могу получить статус потока пользователя?
- 17. Как я могу получить зарегистрированное имя пользователя?
- 18. Как я могу получить текущий каталог пользователя?
- 19. Как я могу получить время пользователя facebook?
- 20. Как я могу получить идентификатор пользователя youtube?
- 21. как я могу получить имя пользователя процесса
- 22. Как я могу получить тип пользователя Facebook?
- 23. Как я могу получить местоположение пользователя?
- 24. Найти человека, который удалил филиал?
- 25. Файл htaccess удалил ошибку
- 26. Git объединить конфликт, так как я удалил файл
- 27. RoR ищет столбец, который я удалил с помощью команды миграции
- 28. Я случайно удалил файл сокета MySQL ('/tmp/mysql.sock') навсегда, как я могу его исправить?
- 29. Как я могу получить путь к файлу, который я загружаю?
- 30. Как я могу получить текст из texbox, который динамически создан?
Что это за «аудит», о котором вы говорите? – BlueMonkMN
@BlueMonkMN: Это может быть так: проверка доступа NTFS - http://support.microsoft.com/kb/310399; это, пожалуй, самый простой вариант - в конце концов, это приближается к ядру, чем к пользовательскому пространству, поэтому он должен поймать все события доступа к файлу (не уверен в доступе к низкоуровневому диску, но это, вероятно, здесь не требуется). У меня нет опыта его тонкой настройки. – Piskvor
Я не хочу использовать аудит, потому что у меня будет много файлов, и на самом деле это будет спам в системном журнале – user295518