2010-03-30 8 views
6

Ho bisogno di sapere quale utente ha cancellato il file nel filesystem dal codice C#. Un'unica idea è utilizzare l'audit, ma sembra essere molto lento ...Come posso ottenere l'utente che ha cancellato il file?

+0

Di che cosa parla questo "audit"? – BlueMonkMN

+1

@BlueMonkMN: Questo potrebbe essere questo: Controllo degli accessi NTFS - http://support.microsoft.com/kb/310399; sembra essere l'opzione più semplice - dopo tutto, questo è più vicino al kernel che allo userspace, quindi dovrebbe catturare tutti gli eventi di accesso ai file (non è sicuro sull'accesso al disco di basso livello, ma probabilmente non è necessario qui). Non ho esperienza con la messa a punto, però. – Piskvor

+0

Non voglio usare il controllo perché avrò molti file e in effetti sarà davvero spam al registro di sistema – user295518

risposta

2

È possibile utilizzare l'evento FileSystemWatcher.Deleted per acquisire le eliminazioni che si verificano sul file system.

A seconda dell'applicazione, è possibile a quel punto anche essere in grado di scoprire quale utente ha causato questo evento (non fa parte di FileSystemEventArgs).

+0

. sto usando watcher, ma quando cerco di ottenere un nome utente come questo: System.Security.AccessControl.FileSecurity sec = new FileSecurity (Path, System.Security.AccessControl.AccessControlSections.Owner); return sec.GetOwner (typeof (System.Security.Principal.NTAccount)). Valore; genera un'eccezione poiché non è in grado di determinare l'utente – user295518

+0

@user: provare 'WindowsIdentity.GetCurrent(). Name' http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity. aspx –

1

Non so se questo può essere recuperato dal filsystem, ma un modo possibile è quello di utilizzare l'oggetto av FileSystemWatcher per attivare un evento su Eliminato. Il rovescio della medaglia è che è necessario avere l'applicazione watcher in esecuzione tutto il tempo. Un lato positivo è che è possibile monitorare solo una cartella spesifica se ciò è fattibile.

+0

sembra che FileSystemWatcher non fornisca informazioni sull'utente che ha cancellato il file ... – user295518

+0

No, ma forse pensavo che si potesse accedere attraverso il file. Dovresti ottenere l'utente che ha cambiato il file, non il proprietario. Ma comunque, il file è probabilmente già cancellato allora. Ecco perché ottieni l'eccezione, credo. –

+0

Forse potresti capire come accedere alle informazioni sul file del file cancellato da questo codice sorgente? http://ntfsundelete.com/downloads/ –

Problemi correlati