我有一个C#代码,它创建一个文件夹并为其设置一些权限.这是代码示例:
static void Main(string[] args){
Directory.CreateDirectory("C:\\vk07");
DirectorySecurity dirSec = Directory.GetAccessControl("C:\\vk07");
dirSec.AddAccessRule(new FileSystemAccessRule("INTRANET\\fGLBChorusUsers", FileSystemRights.ReadAndExecute, AccessControlType.Allow));
Directory.SetAccessControl("C:\\vk07", dirSec);
}
Run Code Online (Sandbox Code Playgroud)
当我检查在上面创建的文件夹上设置的权限时,它没有"读取"和"修改"(这是我在代码中设置的),而是仅显示"特殊权限".
有人可以帮我这个吗?我是ACL的新手,所以不太了解它.
小智 9
我遇到了同样的问题,实际的原因是,如果你从另一篇文章中查看该网络服务图片,它只适用于文件.如果他们说"此文件夹,子文件夹和文件",则基本权限将仅显示在第一张图片上.为此,您需要设置两个标志-InheritanceFlags.ContainerInherit + InheritanceFlags.ObjectInherit.
Try
'If destination directory does not exist, create it first.
If Not Directory.Exists(path) Then Directory.CreateDirectory(path)
Dim dir As New DirectoryInfo(path)
Dim dirsec As DirectorySecurity = dir.GetAccessControl()
'Remove inherited permissions
dirsec.SetAccessRuleProtection(True, False)
'create rights, include subfolder and files to be inherited by this
Dim Modify As New FileSystemAccessRule(username, FileSystemRights.Modify, InheritanceFlags.ContainerInherit + InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow)
Dim Full As New FileSystemAccessRule(admingroup, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit + InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow)
dirsec.AddAccessRule(Modify)
dirsec.AddAccessRule(Full)
'Set
dir.SetAccessControl(dirsec)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Run Code Online (Sandbox Code Playgroud)
FileSystemRights.ReadAndExecute不允许您修改。这是只读的。\n您需要FileSystemRights.Modify完整的范围。\n您可能需要查看可用的选项。
这是上面的一个例子:
\n\nString dir = @"C:\\vk07"; \nDirectory.CreateDirectory(dir); \nDirectoryInfo dirInfo = new DirectoryInfo(dir); \nDirectorySecurity dirSec = dirInfo.GetAccessControl(); \ndirSec.AddAccessRule(new FileSystemAccessRule("INTRANET\\\\fGLBChorusUsers",FileSystemRights.Modify,AccessCo\xe2\x80\x8cntrolType.Allow)); \ndirInfo.SetAccessControl(dirSec);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10928 次 |
| 最近记录: |