【发布时间】:2011-01-07 12:11:43
【问题描述】:
在尝试使用 FileSystemWatcher 时,我发现它以某种方式超出了我的用户帐户对文件和文件夹的权限,并且会引发更改事件,其中包含您甚至无权访问的文件和文件夹中的更改信息.
对此我有两个问题:
1) 为什么会这样?
2) 这是 AD 配置中的问题吗?我该如何解决?
3)有没有办法收集这些文件,甚至创建它们的 FileSystemInfo 以获得有关文件的更多信息(不仅仅是对它们所做的更改)?
据我尝试,只有 FileSystemWatcher 不受限制,我无法在它上面运行任何其他东西,这是我尝试过的列表:
- 文件.存在
- Directory.Exists
- 找到的文件上的 FileInfo 实例
- 找到的文件上的 DirectoryInfo 实例
- 文件.复制
- 文件.删除
更新:尝试了 helge 的解决方案,类似于他所建议的,不是通过 windows 的 api,而是通过命令提示符:
robocopy /B \myserver\folder c:\somefolder
有史以来最好的命令名称。
您可以通过 robocopy 检查 /B 代表“备份模式”,这是 helge 所建议的,这将是导致此安全性超越的原因。
我会尝试任何方法,我想找出导致 FileSystemWatcher 能够监视我无权打开的文件夹的确切原因。知道为什么,我想学习如何阻止 FileSystemWatcher,以及如何收集找到的文件。
如果我使用个人帐户,我会进行调查。请问,有人可以帮我吗?我将写一篇关于解决方案的博客文章,以及其他可能对未来有同样疑问的人有所帮助的内容。
【问题讨论】:
-
文件系统权限与 Active Directory 无关。它们只是本地系统的功能。
-
@Helge 我不同意。如果我拒绝某个组或用户的文件夹权限,我不希望他们能够以任何方式看到我在该文件夹上所做的任何事情。对我来说,这是一个漏洞,一个错误,应该修复。
-
但是本地系统上的权限强制执行与 Active Directory 无关。机器是否加入域可能与此问题无关。
标签: c# visual-studio security active-directory filesystemwatcher