在WPF应用程序中,我使用.txt文件来保存一些信息。 应用程序可以读取和写入.txt文件中的数据。 一切正常,但问题是,为了达到这个目的,我必须授予应用程序用户对这些文件的写入权限,因此他/她可以手动编辑这些文件。
我怎样才能为应用程序设置编辑.txt文件的访问权限而不授予用户相同的权限级别?
编辑(添加):
在得到一些评论和回答后,我这样提出这个问题(只是为了让我的问题更清楚,不限于用户访问权限范围): 我如何防止用户手动更改文件?
对它进行加密或数字签名
我假设你并不是想阻止用户手动更改文件,而只是想阻止专门为文件分配权限的额外步骤。
您很可能正在写入保护区域中的文件(UAC引入后受保护的区域)。 为避免出现这种情况,请将文件写入其中一个“已批准”区域,如%APPDATA%。 这里是一些更多的列表(假设C是你的启动驱动器):
C:\Users\username\Documents C:\Users\username\AppData\Local C:\Users\username\AppData\Roaming C:\Users\Public\Documents C:\ProgramData
这篇文章有一大堆信息,你可以从樱桃挑选一些。
这可能是一个矫枉过正,但你可以创建一个服务,运行在不同的用户帐户,可以编辑文件。 然后您的应用程序将使用该服务来访问该文件。
这样,您可以防止不必要的更改和/或记录文件的每个更改。