如何限制文件夹/文件只能访问程序?

时间:2013-11-15 20:51:46

标签: c# winforms file security directory

好的,我正在创建一个c#winforms应用程序。

我想从二进制数据文件中写入/读取。但是,我想将该文件放在某个文件夹中,我不希望任何人能够删除或编辑该文件。我只希望使用该文件的程序能够访问它。

这可能吗?我查看了MSDN的文件安全结构,当我研究它时,我看到有人抱怨如果你将文件限制为用户,那么那个人就可以覆盖权限并使其可编辑。

另外,我想到了这实际上是如何工作的,考虑到本质上我想要一个只编辑文件的过程,如果它随着时间的推移打开和关闭,那个过程可能有不同的进程ID。看起来很难。

有什么想法吗?

6 个答案:

答案 0 :(得分:1)

如果您打开程序,则可以在程序运行时阻止文件访问。

但是,当程序未运行时,该文件不再受到保护。所以有人只需要杀死程序就可以访问该文件。

为了在程序未运行时保护文件,您需要设置一个用户帐户并为其分配一个仅为程序所知的密码。然后设置文件的权限,以便只有您的用户才能访问该文件。

但是,任何管理员都可以接管文件的所有权,因此即使权限保护也没用。

最后,有人甚至可以将硬盘从PC中取出并读取原始数据。

您可能还会考虑是否要保护文件或文件内容。如果文件内容敏感,请考虑加密。

这实际上取决于您的需求,选择哪个选项。

答案 1 :(得分:1)

即使这不能满足您的所有要求,您也可以尝试IsolatedStorage(System.IO.IsolatedStorage命名空间)。

How to write and read file in IsolatedStorage

  

System.IO.IsolatedStorage命名空间包含允许的类型   创建和使用孤立的商店。有了这些商店,你可以阅读   并写入不受信任的代码无法访问和阻止的数据   暴露可以保存在其他地方的敏感信息   文件系统。数据存储在由隔离的隔离专区中   当前用户以及代码所在的程序集。   此外,数据可以按域隔离。漫游配置文件可以   与隔离存储一起使用,所以隔离的商店将   使用用户的个人资料旅行。 IsolatedStorageScope枚举   表示不同类型的隔离。有关的更多信息   何时使用隔离存储

答案 2 :(得分:0)

如果您在安装之前控制了目标文件系统,那么请设置一些文件权限并从那里开始。访问该文件夹的用户至少需要读取权限。

答案 3 :(得分:0)

在安全组下运行应用程序,并为该安全组的文件夹和文件分配权限。取消对其他人的访问并使其成为只读

答案 4 :(得分:0)

Windows 10版本1709引入了Controlled Folder Access。这允许您将可以修改某些文件夹的应用程序列入白名单。您不能限制读取权限。

答案 5 :(得分:-1)

好吧,我有同样的问题,我对这个主题进行了一些研究,我发现用密码保护您的信息在访问点数据库或任何其他Microsoft数据库中,只有一个具有密码的特定应用程序才有权限对这些信息进行读/写。