2009-06-19 3 views
9

Windows 로그인 대화 상자를 표시하기 위해 호출 할 수있는 Win32 함수가 있습니까?Windows 클라이언트 응용 프로그램에 대한 로그인 대화 상자

예를 들어 Internet Explorer와 Visual Studio의 팀 탐색기는 모두 웹 사이트에 액세스 할 때 자격 증명 대화 상자를 표시합니다. 어떻게 그 대화 상자를 표시 할 수 있습니까?

웹 서비스와 통신 할 때 로그인 한 Windows 사용자 ID를 사용하는 .NET Windows 클라이언트 응용 프로그램이 있습니다. 서비스는 해당 사용자 ID를 사용하여 누가 서비스를 호출 하는지를 판별하고 볼 수있는 권한을 결정합니다.

현재 사용자가 다른 사용자의 사용자 이름/암호를 입력 할 수있는 "실행 파일"을 효과적으로 실행할 수있게 해주는 명령을 추가하고 싶습니다.

사용자 정의 대화 상자를 만들고 LoginUser() 함수를 사용할 수는 있지만 "공식적인"것을 사용하고 싶습니다.

+0

내가 그것을 사용하는 다른 응용 프로그램을 본 적이 있기 때문에 표준 로그인 대화 상자에 대한 API가있다 알고있다. 그러나 나는 그것을 발견하는 어떤 행운도 가지지 않고있다. WNetVerifyPassword API 함수에 대한 참조를 찾았지만 msdn이나 pinvoke.net에 문서화되어 있지 않습니다. –

답변

8

당신은 CredUIPromptForCredentials API 함수

참조를 사용할 수 있습니다 또한 here

+0

위대한 발견. P/invoke.net은 여기에 있습니다 : http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html. LogonUser를 추가하면 필요한 로그인을 수행 할 수 있습니다. 감사! –

+0

SecureString을 사용하여 SecureString을 만들고 IntraPtr을 사용하도록 pinvoke 메서드 매개 변수를 변경하고 Marshal.SecureStringToBSTR (passwordSecureString)을 호출하여 암호를 저장할 수 있습니다. –

0

나는 당신이 자신 만의 대화 상자를 만드는 데 어려움을 겪고 있다고 생각합니다. 그것은 공식적으로 보이게하는 것이 그렇게 어렵지 않다.

관련 문제