0

我正忙于一个项目,您可以在该项目中从门户(ASP.NET 网站)管理共享驱动器的文件夹权限。有没有什么快速的方法可以在文件夹结构中找到用户的特定权限?我在文件服务器上运行了一个 C#.NET 服务。

这是我尝试存档的内容:

文件夹结构:

RootFolder -> TestUser 具有特殊权限,因此用户可以导航到 Folder1
    -> 文件夹 1 -> TestUser 已读取(本地)
        -> 文件夹 1.1 -> TestUser 已读取(继承)
            -> 文件夹 1.1.1 -> TestUser 已阅读(本地)

现在我从文件夹 1 中删除了 TestUser,但是当发生这种情况时,我需要知道 TestUser 是否对结构中某个位置的文件夹具有权限,如果是这种情况,我需要为文件夹 1 和文件夹 1.1 提供特殊权限,以便用户可以导航到文件夹 1.1.1。

我在数据库中拥有完整的文件夹结构和权限,但只有读/写权限而不是特殊权限(授予用户查看文件夹的权限,以便他/她可以导航到具有读/写权限的文件夹)。现在,如果我可以在文件夹结构中进行快速搜索,那就太好了,看看用户是否有一些权限,这样我就可以为用户清理/添加特殊权限(这样用户就可以导航到他/她读过的所有文件夹/写权限)。

我尝试使用 Directory.GetDirectories(fullPath) 遍历文件夹结构,然后为每个目录使用 dir.GetAccessRules() 方法,但是对于大文件夹结构(10.000 个文件夹),这非常慢。

我希望问题很清楚,任何建议都将不胜感激!

4

1 回答 1

0

尝试使用

GetAccessRules(true, false, typeof(SecurityIdentifier))

并将您的用户帐户预翻译为SecurityIdentifier并按此 SID 搜索访问规则条目。

于 2014-03-18T17:46:00.320 回答