1

클라이언트/서버 응용 프로그램의 경우 일반적으로 사용자 프로필 디렉토리로 이동하는 구성 정보의 일부를 중앙에서 저장해야합니다.Windows의 사용자 프로필에 대한 고유 식별자

클라이언트 응용 프로그램은 먼저 현재 프로필에 GUID가있는 파일 또는 레지스트리 항목을 쓸 것입니다. 이 GUID는 이후 서버의 구성 데이터베이스에서 키로 사용됩니다.

이제 Windows 사용자 프로필에 내 고유 GUID를 생성하는 대신 사용할 수있는 고유 식별자가 있는지 궁금합니다.

사용자가 여러 프로필을 가질 수 있으므로 사용자 이름이 작동하지 않습니다. 로밍 프로필이있을 수 있으므로 컴퓨터 이름과 함께 사용하면 작동하지 않습니다.


업데이트 : 난 그냥 같은 도메인에 두 컴퓨터에 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList의 SID를 바라 보았다

. 로밍이 활성화되어 있지 않아 내 사용자 계정에 각 컴퓨터마다 별도의 프로필이 있습니다. 두 프로필 모두 동일한 SID로 나열됩니다. 이것은 내 자신의 GUID를 계속 생성해야한다는 것을 의미합니다.

답변

3

Windows 사용자 및 그룹은 SID (보안 식별자)를 사용합니다.

는 보안 식별자 (SID)를 윈도우 운영 체제의 보안 주체 또는 보안 그룹을 식별하기 위해 사용되는 가변 길이의 고유 값이다.

Windows에 기본 제공되는 list of predefined SIDs이 있습니다. 다른 SID는 현재 컴퓨터 (임의로 생성 된 96 비트) SID를 증가 된 숫자와 결합하여 생성됩니다.

다음 예는 네 개의 로컬 사용자 계정에 대한 SID를 표시하는 컴퓨터에 계정이있는 사용자의

의 SID는 (The Microsoft policy concerning disk duplication of Windows XP installations에서 촬영) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList

샘플 SID를 아래의 레지스트리에 저장됩니다. 새 계정이 추가되면 마지막 네 자리 숫자 만 증가합니다.

  • S-1-5-21-191058668-193157475-1542849698-500 관리자
  • S-1-5-21-191058668-193157475-1542849698-1000 사용자 1
  • S-1-5 -21-191058668-193157475-1542849698-1001 사용자 2
  • S-1-5-21-191058668-193157475-1542849698-1002 때문에 SID를 생성하는 방법의 사용자 3

, 그들은해야 독특한. Windows 프로필 시스템의 일부이므로 로밍 프로필은 모든 시스템에서 동일한 SID를 가져야합니다.

2

사용자 프로필의 보안 식별자 (SID)를 사용할 수 있습니다.

LookupAccountName() Win32 API는 사용자 이름과 컴퓨터 이름을 입력 받아 관련 SID를 제공합니다.

1

R Bemrose와 snowcrash가 정확합니다. 계정 SID는 사용자가 요청한 것입니다. 이 솔루션을 사용하기 위해서는 로밍 프로파일을 많이 활성화해야합니다. 그래서 로밍 프로파일이라고 부릅니다.

도메인 인증을 사용하여 사용자를 식별하지 않으려는 경우 다른 옵션은 WAS (Windows 인증 서비스)입니다. 이것은 유비쿼터스 ASPNETDB 데이터베이스의 Microsoft SQL Server 꼭대기에 구현되는 것이 일반적이지만 꼭 그런 것은 아닙니다.

WAS는 데스크톱 소프트웨어에서도 사용할 수있는 ASP.NET을 정교하게 지원하는 닷넷 솔루션입니다. 그 중 하나가 마음에 들지 않으면 자신 만의 것을 굴릴 수는 있지만 이것은 나에게 자원의 차선책으로 보인다. dotnet 소프트웨어를 구축하지 않으면 WAS를 여전히 사용할 수 있지만 매우 편리하지는 않습니다.

1

이 문제에 대한 LDAP 중심 솔루션을 더 많이 사용할 수도 있지만 앱에 더 많은 작업이 필요할 수 있습니다.

AD에 사용자를위한 몇 가지 고유 필드가 있습니다. 사용자 레코드의 전체 DN (예 : DC = com, DC = example, CN = Users, DN = Bob Smith)을 사용할 수 있습니다. 이것이 광고에서 레코드를 고유하게 식별하는 것입니다. 그러나 MS에는 UPN이라는 필드가 있는데, 전자 메일 주소 (때로는 있음)처럼 보이며 user @ domain 형식을 취합니다.

물론이 정보는 AD에 대한 읽기 액세스 권한이 필요하며 앱에 실용적이지 않을 수 있습니다.

관련 문제