在哪里安全地存储来自Windows服务的数据

本文关键字:Windows 服务 数据 安全 存储 在哪里 | 更新日期: 2023-09-27 18:07:15

我正在使用c#编写一个服务,它应该作为"本地系统"在Windows平台上运行。我可以在注册表中存储少量的数据,但是如果我想在一个文件中存储更多的数据,我应该把这些文件放在哪里呢?以及如何保护数据不被具有较低访问权限的用户修改?

在哪里安全地存储来自Windows服务的数据

一般方法是使用ProtectedData类加密数据,然后将它们存储在应用程序可以存储的磁盘上的任何地方(例如在LocalApplicationData特殊文件夹的子文件夹中,其位置可以使用Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData调用获得)。

更新之前的答案,可能会为使用此解决方案的人节省一些排除故障的时间(因为我没有足够的声誉来评论):

对于Local System Windows服务帐户,选择"Environment.SpecialFolder.LocalApplicationData"还可以下决心吗C:'Windows'SysWOW64'config'systemprofile'AppData'Local代替C:'Windows'System32'Config'SystemProfile'AppData'Local

使用已经提到的CommonApplicationData代替LocalApplicationData不会带来这个问题。

信息来源:https://www.jamescrowley.net/2014/02/24/appdata-location-when-running-under-system-user-account/