2012-08-07 112 views
2

我有我要保护其内容的文件夹, 我这段代码拒绝完全控制它:C#,如何防止用户更改文件夹权限?

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); 

,但我仍然能够更改权限。

任何帮助,将不胜感激..感谢名单了很多提前.. :)

+0

其文件夹呢? – Wug 2012-08-07 22:35:43

+0

该文件夹是我的(我是管理员和所有者) ,我想将文件夹发送给一些人。 这些人大多在他们的机器拥有管理权限.. 但是,由于他们不拥有该文件夹,他们是否可以更改其权限? – vexe 2012-08-07 22:48:48

+1

阅读boo的回答。阻止访问的唯一方法是不给它们。 – Wug 2012-08-07 22:49:23

回答

4

不能防止管理员权限的用户访问文件夹或文件。

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

2

你从来没有在你的原始文章中说过有关将文件夹发送给其他人的任何内容。据推测,这种发送机制涉及电子邮件,FTP等到另一台计算机。假设#2是你的C#程序是读取所述文件夹内容的东西。

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

有几个真正的好拉链操纵库在那里如dotnetzip和#ziplib

+0

好的假设,我已经使用DotNetZip,我只是要做你提到的关于通过保护的zip。 ,但我只是想知道权限n这样的东西.. – vexe 2012-08-07 23:59:42