Ich muss wissen, welcher Benutzer Datei im Dateisystem von C# -Code gelöscht. Nur eine Idee ist, Audit zu verwenden, aber es scheint sehr langsam zu sein ...Wie kann ich Benutzer, die Datei gelöscht haben?
Antwort
Sie können das Ereignis FileSystemWatcher.Deleted
verwenden, um auf dem Dateisystem stattfindende Löschungen zu erfassen.
Abhängig von der Anwendung können Sie möglicherweise auch herausfinden, welcher Benutzer dieses Ereignis verursacht hat (es ist nicht Teil von FileSystemEventArgs
).
spammen wird. Ich benutze Watcher, aber wenn ich versuche, einen Benutzernamen wie diesen zu bekommen: System.Security.AccessControl.FileSecurity sec = neue FileSecurity (Path, System.Security.AccessControl.AccessControlSections.Owner); Rückgabe sec.GetOwner (typeof (System.Security.Principal.NTAccount)). Value; es wirft eine Ausnahme, da es Benutzer – user295518
@user nicht bestimmen kann: Versuchen Sie 'WindowsIdentity.GetCurrent(). Name' http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity. aspx –
Ich weiß nicht, ob dies aus dem filsystem abgerufen werden kann, aber eine Möglichkeit besteht darin, ein FileSystemWatcher-Objekt zu verwenden, um ein Ereignis auf Deleted auszulösen. Der Nachteil ist, dass Sie die Watcher-Anwendung die ganze Zeit laufen lassen müssen. Ein Vorteil ist, dass Sie nur einen spezifischen Ordner überwachen können, wenn das machbar ist.
scheint FileSystemWatcher bietet keine Informationen über Benutzer, die Datei gelöscht ... – user295518
Nein, aber ich habe vielleicht gesagt, es könnte durch die Datei zugegriffen werden. Sie müssten den Benutzer abrufen, der die Datei geändert hat, nicht den Besitzer. Aber trotzdem ist die Datei wahrscheinlich schon gelöscht. Deshalb bekommst du die Ausnahme, die ich vermute. –
Vielleicht könnten Sie herausfinden, wie Sie von diesem Quellcode auf die Dateiinformationen der gelöschten Datei zugreifen können? http://ntfsundelete.com/downloads/ –
- 1. Warum kann die Datei nicht gelöscht werden?
- 2. MySQL, versehentlich gelöscht die Root-Benutzer
- 3. Überprüfen, ob die Datei erfolgreich gelöscht wurde
- 4. Wie kann ich log4net Log-Datei löschen?
- 5. Wie kann ich einige Attribute nur für Benutzer zugänglich machen, die eine bestimmte Rolle haben?
- 6. Spiele löschen, wenn Benutzer gelöscht wird
- 7. Wie kann ich die über mein Fenster gezogene Datei erkennen?
- 8. Wie kann man verhindern, dass eine Spool-Datei gelöscht wird?
- 9. Wie kann ich zwei Klassen die gleichen Variablendefinitionen haben
- 10. Howto: "Benutzer, die Ihr Profil besucht haben ..."
- 11. Wie kann ich eine Datei, die ich in vim geöffnet habe, als falschen Benutzer speichern?
- 12. Wie kann ich die Online-Benutzer meiner Website kennen?
- 13. Wie wird die Meldung "Laden von vorgebündelter Datei" gelöscht?
- 14. Wie viele Benutzer haben die aktualisierte App Version
- 15. Wie kann ich herausfinden, wann eine Datei gelöscht wurde und von wem?
- 16. Wie kann ich 2 Rails-Apps einrichten, die Benutzer teilen?
- 17. Wie kann ich entsperren eine Datei, die
- 18. Wie kann ich die .bowerrc-Datei benennen?
- 19. Stellen Sie sicher, dass Beiträge, die zu einem Benutzer gehören, gelöscht werden, wenn dieser Benutzer gelöscht wird
- 20. Wie kann ich auswählen, welche doppelten Zeilen gelöscht werden sollen?
- 21. Wie kann ich erkennen, wenn ein iAd gelöscht wurde?
- 22. Wie kann ich die vom Benutzer eingegebenen unvollständigen Daten speichern?
- 23. Benutzer konnte nicht gelöscht werden WSO2 IS
- 24. Wie zerstöre ich eine VM, wenn ich die .vagrant-Datei gelöscht habe?
- 25. Wie kann ich nur Dateien bearbeiten, die sich geändert haben?
- 26. Wie kann ich zwei Bereiche schreiben, die kollidierende Joins haben?
- 27. Wie kann ich die tatsächliche Anzahl eines Arrays haben?
- 28. Wie kann ich eine Download-Dateioption in JAVA Swing haben?
- 29. Kann ich eine Quellanweisung in einer Cron-Datei haben?
- 30. Wie kann ich den Formulartext leer haben?
Worauf bezieht sich dieses "Audit"? – BlueMonkMN
@BlueMonkMN: Das könnte dies sein: NTFS-Zugriffsüberwachung - http://support.microsoft.com/kb/310399; das scheint die einfachste Option zu sein - schließlich läuft dies näher an den Kernel als an den Benutzerbereich, so dass es alle Dateizugriffsereignisse erfassen sollte (nicht sicher über Low-Level-Festplattenzugriff, aber das wird hier wahrscheinlich nicht benötigt). Ich habe keine Erfahrung mit der Feinabstimmung. – Piskvor
Ich möchte keine Auditing verwenden, weil ich eine Menge Dateien haben werde und es wirklich in das Systemprotokoll – user295518