C#,如何防止用户更改文件夹权限?

时间:2012-08-07 22:29:35

标签: c# permissions folder-security

我有一个文件夹,我想保护其内容, 我拒绝通过此代码完全控制它:

void changeFolderPermission(string folder, FileSystemRights rights, AccessControlType type)
{
  DirectoryInfo myDirInfo = new DirectoryInfo(folder);
  DirectorySecurity myDirSecurity = myDirInfo.GetAccessControl();
  string user = System.Environment.UserName;
  myDirSecurity.ResetAccessRule(new FileSystemAccessRule(user, rights, type));
  myDirInfo.SetAccessControl(myDirSecurity);
}

我正在使用它:

changeFolderPermission(FolderName, FileSystemRights.FullControl, AccessControlType.Deny);

它工作正常,我的意思是,当我尝试打开文件夹时,它不会让我。 问题是,我可以通过右键单击文件夹轻松删除该权限, 去安全,寻找特殊权限,只是删除它..

有没有办法阻止某人这样做? 我希望文件夹完全安全。

现在我知道有这样的事情:

hangeFolderPermission(FolderName, FileSystemRights.ChangePermissions, AccessControlType.Deny);

但我仍然可以更改权限。

任何帮助将不胜感激.. thanx很多提前.. :))

2 个答案:

答案 0 :(得分:4)

您无法阻止具有管理员权限的用户访问文件夹或文件。

如果用户没有管理员权限,则设置权限(通过管理员帐户)拒绝用户访问。正确配置的权限将阻止非管理员用户访问文件夹/文件。

答案 1 :(得分:2)

您从未在原帖中说过将文件夹发送给其他人的任何内容。据推测,这种发送机制涉及到另一台计算机的电子邮件,ftp等。假设#2是您的C#程序将读取所述文件夹的内容。

在这种情况下简单,创建一个受密码保护的目录zip文件并发送。然后将密码嵌入C#代码中并打开zip文件并阅读其内容。

有几个非常好的zip操作库,如dotnetzip和#ziplib