다음을 통해 공유


EqualPrefixSid 함수(securitybaseapi.h)

EqualPrefixSid 함수는 같음의 두 SID(보안 식별자) 접두사 값을 테스트합니다. SID 접두사는 마지막 하위 인증 값을 제외한 전체 SID입니다.

구문

BOOL EqualPrefixSid(
  [in] PSID pSid1,
  [in] PSID pSid2
);

매개 변수

[in] pSid1

비교할 첫 번째 SID 구조체에 대한 포인터입니다. 이 구조체는 유효한 것으로 간주됩니다.

[in] pSid2

비교할 두 번째 SID 구조체에 대한 포인터입니다. 이 구조체는 유효한 것으로 간주됩니다.

반환 값

SID 접두사 가 같으면 반환 값은 0이 아닌 값입니다.

SID 접두사 가 같지 않으면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

EqualPrefixSid 함수를 사용하면 한 도메인의 서버 애플리케이션에서 사용자가 다른 도메인에 로그온하려는 시도를 확인할 수 있습니다. 예를 들어 사용자가 LocalDomain의 워크스테이션에서 RemoteDomain에 로그온하려고 하면 LocalDomain 서버에서 RemoteDomain에서 사용자 및 사용자 그룹에 대한 SID를 요청할 수 있습니다. RemoteDomain의 도메인 컨트롤러는 관련 SID로 응답합니다.

지정된 도메인에 대한 모든 SID의 접두사는 동일합니다. 서버가 사용자의 SID를 받으면 서버는 각 SID에 대해 EqualPrefixSid 함수를 호출하여 사용자 또는 그룹 SID를 RemoteDomain용 SID와 비교할 수 있습니다. SID 접두사 중 일부가 같지 않으면 서버는 로그온 시도를 거부합니다.

그룹 또는 사용자 SID와 비교하기 전에 도메인에 대한 SID를 수정하는 것이 좋습니다. RemoteDomain용 SID가 S-1–1234-8인 경우 해당 도메인의 각 그룹 또는 사용자 SID에는 접두사로 S-1-1234-8이 있습니다. EqualPrefixSid 함수를 사용하여 SID를 비교하기 위해 애플리케이션은 도메인 SID를 복사하고 RID(하위 권한) 값을 복사본에 추가하여 S-1-1-1234-8-0 형식으로 SID를 만듭니다. 그런 다음, 애플리케이션은 수정된 도메인 SID를 그룹 및 사용자 SID를 비교하는 템플릿으로 사용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 securitybaseapi.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

Access Control 개요

기본 Access Control 함수

CopySid

EqualSid

IsValidSid

SID