C#文件更改/创建/删除事件

时间:2014-07-30 21:44:25

标签: c# file directory filesystemwatcher

我目前正在进入安全问题并尝试构建一个基本的“访问限制器”,如果创建,更改,删除特定目录(包括子目录)中的文件或文件夹,则应该注册。

我已经知道如何在使用FileSystemWatcher执行操作后执行此操作,但我想在处理它之前捕获请求/事件。我已经搜索了一段时间,但还没有真正找到解决方案。

如果这样的事情是可能的,我会很感激提示或简短的样品/参考。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

正如您所说,您已经可以看到在对文件执行了某些操作后会发生什么。据我所知,您不能从.Net抢占文件系统访问权限,因为这种情况发生在更低层(存储正上方)。如果您正在尝试确保安全性,那么最好关注NTFS / Share级别的安全性(Blorgbeard所说的标准权限)。

如果你真的想拦截文件系统调用,那么文件系统过滤器驱动程序可能就是你所追求的,但它看起来非常困难。

进入概念:http://msdn.microsoft.com/en-us/library/windows/hardware/dn641617

另一个SO回答重述相同的事情(我基于上面的链接):How to intercept the access to a file in a .NET Program

或者,您可以定制安全应用程序以枚举文件/文件夹上的安全设置,作为预防措施,以确保正确的文件系统安全设置,或者如果不是,则采取纠正措施。您可以使用FileSecurity类来了解可用的内容(相当多!):http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesecurity(v=vs.110).aspx

如果您想要使用FileSecurity和/或DirectorySecurity类进入审计路线,我会发布一个单独的问题,我们可以解决这个问题。

编辑: 编写过滤器驱动程序的一些实际代码,如果你这么倾向(小心,没有.net): http://www.codeproject.com/Articles/43586/File-System-Filter-Driver-Tutorial