2011-09-20 3 views
6

this MSDN sample처럼 사용자 계정에 대한 액세스 토큰을 얻으려고 LogonUser(...)을 사용하려고했습니다.LogonUser (...)가 도메인 계정에서 작동하지 않는 이유는 무엇입니까?

// Call LogonUser to obtain a handle to an access token. 
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(), 
    LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, 
    out safeTokenHandle); 

나는 .의 도메인과 로컬 사용자 계정 이름과 암호를 제공 할 때 잘 작동 (관리자 권한) 샘플을 실행하지만 때 내가 오류 코드 1326 (로그온 실패를받을 수 있나요 상관없이 : 알 수없는 사용자 이름 또는 잘못된 암호) 도메인 계정을 사용하려고하면. 도메인에 대해 쓰레기를 입력하면 동일한 결과를 얻습니다. DC에 실제로 연결되는지 궁금합니다.

무엇이 작동을 멈출 수 있습니까? 내 경우

+1

불행히도 많은 것들이 있기 때문일 수 있습니다. 컴퓨터가 도메인에 연결되어 있습니까? 도메인 사용자가 해당 컴퓨터에 로그온 할 수 있습니까? DNS 설정이 올바르게 구성되어 있습니까? (이것이 문제가 될 수 있다고 제안한 Citrix 기사를 보았습니다.) 다음 도움말에는 도메인에 대해 가비지를 입력 할 때 발생하는 상황에 대한 정보가 있습니다. https://groups.google.com/group/microsoft.public.dotnet.languages.csharp/msg/dccfbf8b76120401?pli=1 –

+0

Console.ReadLine() 호출없이 작동 함을 확인했습니다 (예 : 암호를 직접 문자열로 제공). –

+0

비밀 번호가 어디에서 유래했는지는 아무런 의미가 없습니다. LogonUser로 전달되는 문자열입니다. – GraemeF

답변

0

이 경우에 대해 빈 도메인 이름으로 사용 DOMAIN\LOGIN ...

+0

널 도메인 이름이'LogonUser'에 전달되면서'DOMAIN \ USERNAME'과'USERNAME @ DOMAIN' 모두 동일한 오류가납니다. – GraemeF

1

은 내가 도메인 사용자로 컴퓨터에 로그인되었지만, 내 컴퓨터가 자체의 일부가 아니었다는 사실이었다 도메인. 일단 도메인에 추가되면 샘플이 작동하기 시작합니다.

+7

도메인에 가입되어 있지 않은 경우 도메인 사용자로 컴퓨터에 어떻게 로그인합니까? – WilfriedVS

1

내 질문에 물음표와 비슷한이 문제는 내가 인증하려고 시도한 계정이 현재 컴퓨터가 속한 도메인이 아니라는 것을 의미합니다. 원래의 포스터와 달리 내 컴퓨터는이 다른 도메인에 속해서는 안되며 없어야합니다. 하지만이 도메인의 리소스에 대해 작업을 수행하려면 로그인을 원했습니다.

대답이었다 정의 된 다음과 같은 상수

bool success = LogonUser(
       userName, 
       domain, 
       password, 
       (int)LOGON32_LOGON_NEW_CREDENTIALS, //9 
       (int)LOGON32_PROVIDER_DEFAULT, //0 
       out userToken); 

다음 희망이 비슷한 상황에서 길을 잃었 다른 사람을 도움이 될 것입니다

public const int LOGON32_LOGON_NEW_CREDENTIALS = 9; 
public const int LOGON32_PROVIDER_DEFAULT = 0; 

합니다.

관련 문제