문제

사용자가 도메인에 있거나 서버에 동일한 자격 증명이있는 로컬 계정이있는 UNC 공유에 대한 연결을 간헐적으로 잃어버린 .NET 클라이언트 앱이 있습니다. So와 Google에는 p-invoke를 통해 Logonuser 및 WnetAddConnection을 사용하여 많은 예제가 있지만 모두 사용자의 비밀번호가 필요합니다. 우리의 앱은 UNC에 대한 연결을 명시 적으로 열고 파일을 복사하며 자격 증명을 제공하지 않고 연결을 명시 적으로 닫는 것입니다. 즉, 현재 자격 증명을 사용합니다. 누구든지 C#에서 그렇게하는 방법에 대한 올바른 방향으로 나를 지적 할 수 있습니까?

도움이 되었습니까?

해결책

문서에 따르면 WnetAddConnection2 함수, 사용자 이름이 현재 프로세스의 사용자 컨텍스트를 사용하기 위해 NULL을 전달할 수 있습니다. 이는 클라이언트 애플리케이션을 실행하는 계정의 보안 컨텍스트를 사용한다는 것을 의미한다고 가정합니다. MSDN은 또한 지정된 사용자 이름과 관련된 비밀번호를 사용하기 위해 비밀번호를 위해 NULL을 전달하라고 지시합니다.

둘 다 널로 설정하면 마술처럼 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top