从Windows服务安全地存储数据的位置?

时间:2013-04-04 04:13:12

标签: c# .net windows security service

我正在使用C#编写服务,该服务应该在Windows平台上作为“本地系统”运行。我可以在注册表中存储少量数据,但如果我想在文件中存储更多数据,我在哪里放置这样的文件?还有如何保护这些数据免受具有较低访问权限的用户的修改?

2 个答案:

答案 0 :(得分:6)

一般方法是使用ProtectedData类来加密数据,然后将它们存储在应用程序所在的磁盘上的任何位置(例如,在LocalApplicationData特殊文件夹的子文件夹中,您可以使用{{1}获取其位置打电话)。

答案 1 :(得分:1)

更新为先前的答案,可能会节省使用该解决方案的人员的疑难解答时间(因为我没有足够的声誉来发表评论):

对于本地系统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/