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

c00*_*0fd 4 .net c# windows security service

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

Eug*_*its 6

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

  • 对于 Windows 服务,`CommonApplicationData` 是更好的选择。它解析为`%ProgramData%`。我们得到的绳索刚好够上吊。 (3认同)
  • 不必要。标记写入“%SystemRoot%”层次结构的应用程序的防病毒程序运行正常。避免这种设计是个人开发人员的责任。对于 Windows 服务,更好的位置是 `Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)`。 (2认同)