다음을 통해 공유


LSA_ADD_CREDENTIAL 콜백 함수(ntsecpkg.h)

[AddCredential 은 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다. 애플리케이션은 메시지 유형으로 지정된 KerbAddExtraCredentialsMessage와 함께 LsaCallAuthenticationPackage 함수를 사용해야 합니다. KerbAddExtraCredentialsMessageKERB_PROTOCOL_MESSAGE_TYPE 열거형 값입니다.]

로그온 세션에 자격 증명을 추가합니다. 이러한 자격 증명은 나중에 GetCredentials 함수 호출을 통해 참조할 수 있습니다.

구문

LSA_ADD_CREDENTIAL LsaAddCredential;

NTSTATUS LsaAddCredential(
  [in] PLUID LogonId,
  [in] ULONG AuthenticationPackage,
  [in] PLSA_STRING PrimaryKeyValue,
  [in] PLSA_STRING Credentials
)
{...}

매개 변수

[in] LogonId

자격 증명을 추가할 로그온 세션의 세션 ID를 포함하는 LUID 에 대한 포인터입니다.

[in] AuthenticationPackage

호출 인증 패키지의 인증 패키지 ID입니다. 이 값은 DLL 초기화 중에 LsaApInitializePackage 호출에서 수신됩니다.

[in] PrimaryKeyValue

인증 패키지가 나중에 자격 증명 데이터의 기본 키로 참조해야 하는 값을 포함하는 문자열입니다. 예를 들어 자격 증명과 관련된 도메인 또는 서버의 이름을 유지하는 데 사용할 수 있습니다. 이 문자열의 형식과 의미는 인증 패키지에 따라 다릅니다. 지정된 로그온 세션에 대해서도 문자열 값이 고유할 필요는 없습니다. 예를 들어 동일한 도메인에 대해 각각 자격 증명으로 저장된 암호와 기본 키로 저장된 도메인 이름이 있는 두 개의 암호가 있을 수 있습니다.

[in] Credentials

사용자 자격 증명을 나타내는 문자열입니다. 이 문자열의 형식과 의미는 인증 패키지에 따라 다릅니다.

반환 값

함수가 성공하면 함수는 STATUS_SUCCESS 반환합니다.

함수가 실패하면 다음 값 또는 LSA 정책 함수 반환 값 중 하나일 수 있는 NTSTATUS 코드를 반환합니다.

반환 코드 설명
STATUS_NO_SUCH_LOGON_SESSION
지정된 로그온 세션을 찾을 수 없습니다.
 

LsaNtStatusToWinError 함수는 NTSTATUS 코드를 Windows 오류 코드로 변환합니다.

설명

자격 증명 문자열의 본문은 자기 상대여야 합니다. 즉, 자격 증명 외부의 메모리에 대한 포인터를 포함하지 않아야 합니다. 자격 증명이 복사되고 자격 증명 자체 외부의 포인터는 복사본에서 더 이상 유효하지 않습니다. 특히 자격 증명에서 참조되는 문자열에는 자격 증명 버퍼에 배치된 UNICODE_STRING 헤더와 본문이 모두 있어야 합니다. 자격 증명 본문의 문자열에 대한 포인터를 오프셋으로 변경해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntsecpkg.h

추가 정보

GetCredentials

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE