我的 VB.NET 应用程序构建了一个访问受限的目录树。
访问权限应该是普通用户不能删除或重命名现有树。但是用户可以在树中的任何位置添加新文件/文件夹。用户创建的文件/文件夹应该可以被任何用户完全修改。
我遇到的问题是设置访问权限,以便无法更改应用程序创建的文件/文件夹,但任何用户都可以更改用户创建的文件/文件夹。
当前发生的情况是应用程序生成的文件/文件夹行为正确。但是当用户创建自己的文件/文件夹时,该文件/文件夹的权限仅列出当前用户。因此其他用户(甚至是应用程序创建的文件/文件夹的系统管理员)无法查看或修改此用户创建的文件/文件夹。
当前代码:( 当用户自己创建文件/文件夹时,此代码不授予对 UserGroup 或 AdminGroup 的访问权限,仅授予刚刚创建文件/文件夹的用户)
FolderAcl.AddAccessRule(New FileSystemAccessRule(UserGroup,
FileSystemRights.ReadAndExecute,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.AddAccessRule(New FileSystemAccessRule(UserGroup,
FileSystemRights.Write,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.AddAccessRule(New FileSystemAccessRule(AdminGroup,
FileSystemRights.FullControl,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.SetAccessRuleProtection(True, False)
另一个尝试:( 当用户自己创建文件/文件夹时,此代码授予对 UserGroup 和 AdminGroup 的访问权限,但不授予对用户的访问权限。用户在 UserGroup 中,但 UserGroup 没有删除或修改权限,所以如果用户创建了一个文件/文件夹,他们甚至不能命名它。)
' same code as above except...
InheritanceFlags.None ---> InheritanceFlags.Container or InheritanceFlags.Object
我已经尝试过 InheritanceFlags 和 PropagationFlags 的其他组合,但还没有运气。
有任何想法吗?
谢谢,迈克