원격 데스크톱 서비스 환경에서 애플리케이션은 모든 사용자에게 적용되는 전역 정보와는 별도로 사용자별 위치에 사용자별 정보를 저장해야 합니다. 이 규칙은 레지스트리에 저장된 정보와 파일에 저장된 정보에 적용됩니다. 일반적으로 한 컴퓨터가 한 사용자와 동일하다고 가정하지 마세요.
HKEY_CURRENT_USER 레지스트리 키 아래에 사용자별 레지스트리 정보를 저장합니다. 원격 데스크톱 서비스는 사용자가 로그온할 때 현재 사용자의 개인 레지스트리 하이브를 HKEY_CURRENT_USER 로드합니다. 물론 원격 데스크톱 서비스는 레지스트리를 관리하여 로그온한 각 클라이언트가 HKEY_CURRENT_USER따라 올바른 사용자 하이브를 감지하도록 합니다. 레지스트리 키에 대한 자세한 내용은 레지스트리 키 보안 및 액세스 권한 및 레지스트리 Hives참조하세요.
반면, 모든 사용자는 HKEY_LOCAL_MACHINE 하이브를 공유합니다. HKEY_LOCAL_MACHINE 사용하여 사용자별 정보가 아닌 컴퓨터 관련 정보를 저장합니다.
사용자 기본 설정 파일 또는 기타 사용자별 파일을 사용자의 루트 디렉터리 또는 사용자 지정 디렉터리에 저장합니다. 이 고려 사항은 중간 정보(예: 캐시된 데이터)를 저장하거나 다른 애플리케이션에 데이터를 전달하는 데 사용되는 임시 파일에 적용됩니다. 사용자별 임시 파일도 사용자 단위로 저장해야 합니다.
SHGetSpecialFolderLocation 함수를 CSIDL_PERSONAL 플래그와 함께 사용하여 사용자의 개인 파일 디렉터리의 위치를 가져올 수 있습니다. GetWindowsDirectory 함수를 사용하여 Windows 디렉터리의 경로를 검색할 수도 있습니다. 원격 데스크톱 서비스 환경에서 Windows 디렉터리가 각 사용자에 대해 비공개로 보장됩니다. 시스템 디렉터리(예: WINDOWS) 또는 프로그램 파일과 같은 프로그램 디렉터리 아래에 사용자별 파일을 저장하지 마세요.
사용자의 정보 및 기본 설정 간의 충돌을 방지하기 위해 애플리케이션은 사용자별 임시 정보를 사용자별 임시 파일에 저장해야 합니다. 또한 사용자별 임시 파일은 파일 잠금 충돌로 인한 애플리케이션 오류를 방지합니다. 임시 정보를 저장하는 경로를 지정하려면 GetTempPath 함수를 사용합니다.