LogonUser을 사용하여 사용자의 도메인 자격 증명 집합을 확인합니다. 사용자가이 컴퓨터 LogonUser에서 캐시 된 자격 증명을 사용하지 않는 방법은 무엇입니까?
LogonType Current Password Old password
=========== ============================== ========================
Network Succeeds Succeeds
Batch Fails (0x00000569) Fails (invalid password)
Interactive Succeeds Fails (invalid password)
오류 코드 :
0x00000569
: 로그온 실패 교란 결과LogonUser(accountName, domain, password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_WINNT50, ref token);
0x0000052E
: 로그온 실패 : Unk nown 사용자 이름이나 암호
세부 사항 :
- 사용자는 함수가
true
반환 유효 자격 증명을 입력합니다. (양호) 사용자가 자격 증명을 입력하지 않으면이 함수는
false
을 반환합니다. (좋은)사용자가 자신의 암호를 변경하고 기능이
true
반환 새로운 유효 자격 증명을 입력합니다. (좋은)사용자가 기능이
false
반환 무효 자격 증명을 입력합니다. (좋은)사용자가 기능이
true
반환 자신의 된 자격 증명을 입력합니다. 는
주 (나쁜) : 다른 시스템 (그들은 이전에 로그인 한 적이 한), 그리고에 대한 사용자 이동 된 자격 증명을 입력 경우,
LogonUser
은 계속 사실을 반환하십시오. 이것은 로컬 컴퓨터에서 캐싱이 발생하지 않는다는 의미입니다. 그러나 어떤 식 으로든 "은 네트워크에 있습니다."입니다. 사용자가 다시 암호 를 변경하고 자신의 새로운 새 자격 증명을 입력하면
- 는, 함수는
true
를 반환합니다.(좋은) - 사용자가 기능이
true
반환 자신의 된 자격 증명을 입력합니다. (나쁜) - 사용자가 기능을
false
반환 자신의 이전 된 자격 증명을 입력합니다. (좋은)
방법 호출 LogonUser
내가이 캐시 된 자격 증명를 사용하지 도메인을 지시하는 지시 할 수 있습니다 때.
주 : 사용자가 자신의 세 (또는 이전) 이전 암호를 윈도우에 로그온하려고하면, 그들은 잘못된 암호 오류가 발생합니다.
MSDN에서
:
LOGON32_LOGON_NETWORK
이 로그온 유형은 일반 텍스트 암호를 인증하는 고성능 서버를위한 것입니다. LogonUser 함수 이 로그온 유형에 대해 자격 증명을 캐시하지 않습니다.
LOGON32_LOGON_INTERACTIVE
이 로그온 유형은 이러한 사용자가 terminal 서버, 원격 쉘, 또는 유사한 방법에 의해 기록되는 방식으로 컴퓨터를 사용하여 대화 할 사용자를 위해 의도된다. 이 로그온 유형은 연결이 끊어진 작업에 대한 로그온 정보를 캐싱하는 의 추가 비용이 있습니다.; 따라서 은 메일 서버와 같은 일부 클라이언트/서버 응용 프로그램에 적합하지 않습니다.
LOGON32_LOGON_BATCH
이 로그온 유형은 프로세스가 직접 개입하지 않고 사용자를 대신하여 실행될 수있는 배치 서버를위한 것입니다. 이 유형은 메일 또는 웹 서버와 같이 한 번에 많은 일반 텍스트 인증 시도를 처리하는 고성능 서버용입니다.
내가 인증 일반 텍스트 암호를 오전, 그래서 LOGON32_LOGON_NETWORK
를 사용하여 . 대화 형 로그온 캐시 자격 증명은 여기에 허용되지 않습니다. 일괄은 사용시기에 대해 문서화되지 않았지만 단순히 실패합니다.
업데이트은 : 도메인 만 허용합니다
- 이전 암호 (안 더 뒤로 어떤)
- 60 분
그것은 그것의 나에게 일반의 Active Directory의 "기능"은 1 시간의 유예 기간을 제공합니다.
나는 유예 기간을 원하지 않으며, 도메인의 설정을 변경하고 싶지 않습니다. (도메인의 설정을 모르는 한 달 동안 유예 기간이 허용됩니다. 이전 암호).
i * am *'LOGON32_PROVIDER_WINNT50'을 사용합니다. - 부탁 한 NTLM을 사용하고 싶지 않습니다. 질문에 암묵적으로, "NTLM 인증 대신 Kerberos를 어떻게 사용할 수 있습니까?" 그러나 "왜 LogonUser는 Kerberos가 아닌 NTLM을 사용합니까?"*라는 질문은 StackOverflow [ServerFault가 대답 할 수없는 것] (http://serverfault.com/questions/384719/how-to)입니다. -ersure-machine-is-kerberos-domain-joined). –