存储特定于用户的信息

在远程桌面服务环境中,应用程序应将用户特定的信息存储在用户特定的位置,与应用于所有用户的全局信息分开。 此规则适用于存储在注册表中的信息以及存储在文件中的信息。 一般情况下,不要假设一台计算机等效于一个用户。

Microsoft Store HKEY_CURRENT_USER注册表项下的用户特定注册表信息。 远程桌面服务在用户登录时将当前用户的个人注册表配置单元加载到 HKEY_CURRENT_USER 。 当然,远程桌面服务会管理注册表,以确保每个登录客户端在 HKEY_CURRENT_USER下检测到正确的用户配置单元。 有关注册表项的详细信息,请参阅 注册表项安全性和访问权限注册表 Hives

相比之下,所有用户共享 HKEY_LOCAL_MACHINE 配置单元。 使用 HKEY_LOCAL_MACHINE 存储特定于计算机的信息,而不是特定于用户的信息。

Microsoft Store用户首选项文件或用户指定的目录中的用户首选项文件或其他用户特定的文件。 此注意事项适用于用于存储临时信息 (的临时文件,例如缓存数据) 或将数据传递到其他应用程序。 用户特定的临时文件还必须按用户存储。

可以将 SHGetSpecialFolderLocation 函数与CSIDL_PERSONAL标志配合使用,以获取用户个人文件目录的位置。 还可以使用 GetWindowsDirectory 函数检索Windows目录的路径。 在远程桌面服务环境中,Windows目录保证是每个用户的专用目录。 不要将用户特定的文件存储在系统目录(如 WINDOWS)或程序目录(如 Program Files)下。

为了避免用户信息和首选项之间的冲突,应用程序应将每用户临时信息存储在用户特定的临时文件中。 特定于用户的临时文件还可防止因文件锁定冲突而导致的应用程序故障。 若要指定存储临时信息的路径,请使用 GetTempPath 函数。