我对文件系统和权限/权限访问(又称访问控制列表,ACL)相当新。关于ACL的编码,我无法设置我想要的文件属性。我不确定我对FileSystemRights成员的理解是错误的,还是我完全做错了。 (而且我已经在这部分上花了相当多的时间)
我想要做的是更改文件的权限,以便它只能是可读的,不能在别处编辑,重命名,删除和复制。
使用MSDN的示例,这是我到目前为止所拥有的:
try
{
//Get current identity
WindowsIdentity self = System.Security.Principal.WindowsIdentity.GetCurrent();
// Add the access control entry to the file.
AddFileSecurity(filename, self.Name, FileSystemRights.Modify, AccessControlType.Deny);
AddFileSecurity(filename, self.Name, FileSystemRights.Write, AccessControlType.Deny);
AddFileSecurity(filename, self.Name, FileSystemRights.ReadAndExecute, AccessControlType.Allow);
// Remove the access control entry from the file.
RemoveFileSecurity(filename, self.Name, FileSystemRights.ReadAndExecute, AccessControlType.Deny);
RemoveFileSecurity(filename, self.Name, FileSystemRights.Read, AccessControlType.Deny);
Console.WriteLine("Done.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
我的逻辑是:
我正确地做这个部分吗?如果没有,请告知我该怎么做才能使文件只能读取,不可编辑,可恢复,可删除和可复制。非常感谢提前!
答案 0 :(得分:0)
请解释它做错了什么。我看到的唯一问题可能是您要为自己设置权限,而不是为其他用户或组设置权限。也许您应该遍历所有组(管理员,用户等)并禁用除读取和执行之外的所有组。虽然我认为SYSTEM始终可以完全控制所有文件。