如何防止用户手动更改文件?

时间:2010-03-06 07:22:33

标签: c# .net windows authorization

在WPF应用程序中,我使用.txt文件来保存一些信息。应用程序可以从/ .txt文件读取和写入数据。一切都还可以,但问题是,为了达到这个目的,我必须为应用程序的用户授予对这些文件的写访问权限,因此,他/她可以手动编辑这些文件。

如何在不向用户授予相同级别权限的情况下为应用程序设置编辑.txt文件访问权限?

已编辑(已添加):

在得到一些评论和答案后,我以这种方式提出问题(只是为了让我的问题更清晰,而不仅限于用户访问权限范围):如何阻止用户手动更改文件?< /强>

3 个答案:

答案 0 :(得分:6)

加密或数字签名

答案 1 :(得分:3)

我打算假设您没有试图阻止用户手动更改文件,您只是想阻止专门为文件分配权限的额外步骤。

您最有可能写入受保护区域(在引入UAC后受保护的区域)中的文件。要避免这种情况,请将文件写入“已批准”区域之一,例如%APPDATA%。这是一个更多的列表(假设C是你的启动驱动器):

C:\Users\username\Documents
C:\Users\username\AppData\Local
C:\Users\username\AppData\Roaming
C:\Users\Public\Documents
C:\ProgramData

This article有很多关于你可以选择的信息。

答案 2 :(得分:3)

这可能是一种矫枉过正,但您可以创建一个在不同用户帐户上运行的服务,该帐户可以编辑该文件。然后您的应用程序将使用该服务来访问该文件。

这样,您可以防止不必要的更改和/或记录对文件的每个更改。