Msv1_0SubAuthenticationRoutine 함수(subauth.h)
Msv1_0SubAuthenticationRoutine 함수는 클라이언트/서버별 인증을 수행합니다.
보안 주체의 자격 증명 및 SAM( 보안 계정 관리자 ) 데이터베이스의 정보는 인증을 위해 이 함수에 전달됩니다.
이 함수는 MSV1_0 인증 패키지에 사용하기 위해 사용자 지정 하위 인증 패키지 DLL에 의해 구현됩니다.
Msv1_0SubAuthenticationRoutine 함수는 비자동 인증에 대해서만 호출되며, 계정이 있는 인증 서버에서만 호출되며, 레지스트리의 올바른 키 아래에 하위 인증 DLL이 등록된 경우에만 호출됩니다.
구문
NTSTATUS Msv1_0SubAuthenticationRoutine(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
매개 변수
[in] LogonLevel
LogonInformation 매개 변수에 지정된 정보 수준을 지정합니다. 이 매개 변수는 일반적으로 NetlogonInteractiveInformation으로 설정됩니다.
[in] LogonInformation
NETLOGON_LOGON_IDENTITY_INFO 구조체에 대한 포인터입니다. 이 구조체의 멤버는 로그온하는 사용자에 대한 정보를 포함합니다. 이 구조체의 LogonDomainName 멤버는 무시됩니다.
[in] Flags
선택 사항입니다. 로그온 상황을 설명하는 플래그를 포함합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
통과 인증. 사용자가 이 컴퓨터에 연결하지 않습니다. |
|
게스트 사용자 계정을 사용하여 로그온을 다시 시도합니다. |
[in] UserAll
SAM 데이터베이스에서 반환된 사용자에 대한 설명을 포함하는 USER_ALL_INFORMATION 구조체에 대한 포인터입니다.
[out] WhichFields
SAM 데이터베이스에 다시 기록해야 하는 USER_ALL_INFORMATION 구조체의 멤버를 반환합니다. 이러한 멤버는 Msv1_0SubAuthenticationRoutine 호출자에게 성공을 반환하는 경우에만 작성됩니다. 다음 값만 유효합니다.
값 | 의미 |
---|---|
|
UserAll 구조의 Parameters 멤버에 포함된 데이터를 SAM 데이터베이스에 다시 씁니다.
Parameters 멤버의 UNICODE_STRING 버퍼 크기가 변경되면 Msv1_0SubAuthenticationRoutine MIDL_user_free 함수를 사용하여 버퍼를 삭제하고 MIDL_user_allocate 함수를 사용하여 다시 할당해야 합니다. |
[out] UserFlags
LsaLogonUser 함수의 ProfileBuffer 매개 변수에 MSV1_0_LM20_LOGON_PROFILE 구조체가 포함된 경우 반환할 값입니다. 현재 구조체의 UserFlags 멤버에 대해 다음 값이 정의되어 있습니다.
값 | 의미 |
---|---|
|
게스트 로그온입니다. |
|
호출자가 암호화된 자격 증명을 지정하지 않았습니다. |
[out] Authoritative
반환된 상태 원래 호출자에게 반환되어야 하는 신뢰할 수 있는 상태 여부를 나타내는 부울 값에 대한 포인터입니다. 반환된 값이 FALSE이면 다른 도메인 컨트롤러에서 로그온 요청을 다시 시도할 수 있습니다. 이 매개 변수는 함수 호출의 반환 값에 관계없이 유효한 정보를 반환해야 합니다.
[out] LogoffTime
사용자가 시스템에서 로그오프해야 하는 시간을 수신하는 값에 대한 포인터입니다. 이 시간은 로그온 수명을 제어하는 데 사용되며 GMT 상대 시스템 시간으로 지정됩니다.
[out] KickoffTime
사용자가 시스템에서 로그오프해야 하는 시간을 수신하는 값에 대한 포인터입니다. 이 시간은 로그온 수명을 제어하는 데 사용되며 GMT 상대 시스템 시간으로 지정됩니다. 사용자가 로그오프되지 않을 경우 다음과 같은 큰 양의 값을 지정합니다.
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
반환 값
이 함수는 다음 값 중 하나를 반환해야 합니다.
반환 코드 | 설명 |
---|---|
|
오류가 없었습니다. |
|
계정을 사용할 수 없습니다. |
|
계정이 만료되었습니다. |
|
계정이 잠겼습니다. |
|
LogonLevel 이 잘못되었습니다. |
|
현재 사용자는 로그온할 권한이 없습니다. |
|
사용자는 지정된 워크스테이션에 로그온할 권한이 없습니다. |
|
지정된 사용자에게 계정이 없습니다. |
|
암호가 만료되었습니다. |
|
다음 로그온에서 암호를 변경해야 함을 나타내는 계정이 표시됩니다. |
|
암호가 잘못되었습니다. |
설명
AuthenticationInformation 매개 변수의 일부가 하위 인증이 수행되어야 한다고 나타내고 Msv1_0SubAuthenticationRoutine 함수를 내보내는 하위 인증 DLL이 워크스테이션에 올바르게 등록된 경우 이 함수는 MSV1_0 인증 패키지에서 호출됩니다.
MSV1_0 인증 패키지는 MSV1_0_INTERACTIVE_LOGON 구조가 필요한 대화형 로그온에 대한 하위 인증을 지원하지 않습니다. MSV1_0_LM20_LOGON 구조가 필요한 네트워크 로그온은 하위 인증을 사용할 수 있습니다.
Msv1_0SubAuthenticationRoutine 함수는 올바른 도메인 컨트롤러가 있고 인증할 보안 주체에 대한 모든 정보가 SAM 데이터베이스에서 검색된 후에 호출됩니다. 하위 인증을 사용하는 경우 인증은 하위 인증 DLL의 책임이며 해당 DLL에서 내보낸 Msv1_0SubAuthenticationRoutine 함수에서 수행해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | subauth.h |