好的,我正在创建一个c#winforms应用程序。
我想从二进制数据文件中写入/读取。但是,我想将该文件放在某个文件夹中,我不希望任何人能够删除或编辑该文件。我只希望使用该文件的程序能够访问它。
这可能吗?我查看了MSDN的文件安全结构,当我研究它时,我看到有人抱怨如果你将文件限制为用户,那么那个人就可以覆盖权限并使其可编辑。
另外,我想到了这实际上是如何工作的,考虑到本质上我想要一个只编辑文件的过程,如果它随着时间的推移打开和关闭,那个过程可能有不同的进程ID。看起来很难。
有什么想法吗?
答案 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数据库中,只有一个具有密码的特定应用程序才有权限对这些信息进行读/写。