Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows服务安全保存密钥_C#_Windows Services_Filesystems_Registry - Fatal编程技术网

C# Windows服务安全保存密钥

C# Windows服务安全保存密钥,c#,windows-services,filesystems,registry,C#,Windows Services,Filesystems,Registry,我创建了一个服务,并使其作为LocalSystem运行,因为我需要它独立于登录的用户运行,并且该服务需要保存从套接字接收的密钥,并将其保留在文件系统或注册表中。保存文件或注册表项的最佳方法是什么,以使标准用户无法读取该项 找到了一种方法,使用文件系统在此处保存配置文件: Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 该服务以localsystem运行,因此返回以下内容: @"C:\Windows\sys

我创建了一个服务,并使其作为
LocalSystem
运行,因为我需要它独立于登录的用户运行,并且该服务需要保存从套接字接收的密钥,并将其保留在文件系统或注册表中。保存文件或注册表项的最佳方法是什么,以使标准用户无法读取该项

找到了一种方法,使用文件系统在此处保存配置文件:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
该服务以localsystem运行,因此返回以下内容:

@"C:\Windows\system32\config\systemprofile\AppData\Roaming\"
只有系统或管理员才能访问它。

如果有人有理由不使用这种方式,或者有更好的方式,这也会非常有用

您不需要以
LocalSystem
的身份运行。所有的建议都是不要这样做。例如,使用
LOCALSERVCE
。不要将
system32
用作存放物品的地方。它属于系统,而不是你。最后,每个人都可以阅读
system32
,所以把它放在那里根本不起作用。您需要在计算机上找到一个位置,并使用ACL保护它免受窥探。@DavidHeffernan“本地服务帐户是一个内置帐户,与用户组成员具有相同级别的资源和对象访问权限”,此服务需要以管理员身份运行,我认为
localService
无法做到这一点。的确,每个用户都可以访问
system32
,但不能访问
systemprofile
文件夹,只有管理员权限,那么您应该找到另一个用户<不建议使用代码>本地系统。关于
C:\Windows\system32\config
你是对的,我同意。