通过在本地配置文件下运行服务从 Windows 服务获取用户 AppData 路径

Moh*_*hah 3 c# windows-services

我有一个 Windows 应用程序,我在其中AppData使用环境变量进行检索。所以,它给了我以下路径

C:\document and settings\current user name\application data.
Run Code Online (Sandbox Code Playgroud)

但是,当我AppData使用环境变量从 Windows 服务检索路径时,我得到以下路径:

C:\windows\ServiceProfiles\LocalService\AppData\Local
Run Code Online (Sandbox Code Playgroud)

所以,这个AppData路径与我的Windows应用程序环境变量的路径不同AppData

我正在本地配置文件下运行 Windows 服务。我知道,如果我将服务配置文件更改为在用户下运行,则服务AppData路径和 Windows 应用程序AppData路径匹配,但服务会提示输入用户名和密码。

我的问题是如何AppData通过在本地配置文件下运行服务来获取服务的用户路径而不提示输入用户名和密码?

小智 5

这是莫希特国王的回答

我发现无法通过在配置文件“LocalSystem”AppData下运行服务来从 Windows 服务获取用户路径。所以,我用了

Environment.SpecialFolder.CommomAppData
Run Code Online (Sandbox Code Playgroud)

它为我提供了应用程序数据路径C:\ProgramData,当在 Windows 7 上运行时以及在 Windows 服务中使用相同的东西时,它也提供了相同的路径。我还在配置文件“LocalSystem”下运行了该服务,并且它没有提示我输入凭据。这解决了我的问题。