Хранение сведений о пользователях

В среде служб удаленных рабочих столов приложения должны хранить сведения, относящиеся к конкретному пользователю, отдельно от глобальных сведений, которые применяются ко всем пользователям. Это правило применяется к сведениям, хранящимся в реестре, а также к информации, хранящейся в файлах. Как правило, не следует предполагать, что один компьютер эквивалентен одному пользователю.

Храните сведения о реестре пользователя в разделе реестра HKEY_CURRENT_USER . Службы удаленных рабочих столов загружают куст личного реестра текущего пользователя в HKEY_CURRENT_USER при входе пользователя. Конечно, службы удаленных рабочих столов управляют реестром, чтобы гарантировать, что каждый из клиентов, выполнивший вход, обнаруживает правильный куст пользователя в HKEY_CURRENT_USER. Дополнительные сведения о разделах реестра см. в разделе Безопасность разделов реестра и права доступа и кусты реестра.

В отличие от этого, все пользователи совместно используют HKEY_LOCAL_MACHINE куст. Используйте HKEY_LOCAL_MACHINE для хранения сведений о компьютере, а не о пользователях.

Храните файлы предпочтений пользователя или другие файлы, относящиеся к конкретному пользователю, в корневом каталоге пользователя или в указанном пользователем каталоге. Это относится к временным файлам, используемым для хранения промежуточной информации (например, кэшированных данных) или передачи данных другому приложению. Временные файлы, относящиеся к конкретному пользователю, также должны храниться для каждого пользователя.

Вы можете использовать функцию SHGetSpecialFolderLocation с флагом CSIDL_PERSONAL, чтобы получить расположение каталога личных файлов пользователя. Вы также можете использовать функцию GetWindowsDirectory для получения пути к каталогу Windows. В среде служб удаленных рабочих столов каталог Windows гарантированно будет частным для каждого пользователя. Не храните пользовательские файлы в системном каталоге, например WINDOWS, или в каталоге программы, например Program Files.

Чтобы избежать конфликтов между сведениями и предпочтениями пользователей, приложения должны хранить временные сведения для каждого пользователя во временных файлах пользователя. Временные файлы пользователя также предотвращают сбои приложений, вызванные конфликтами блокировки файлов. Чтобы указать путь для хранения временной информации, используйте функцию GetTempPath .