2010-06-15 2 views
0

C# 코드에서 매핑 된 네트워크 드라이브를 열고 싶지만 암호로 보호되어 있으므로 직접 열려고하면 예외가 발생합니다. 이 드라이브를 여는 중 누군가가 사용자 이름과 비밀번호를 제공하는 것에 대해 밝힐 수 있습니까? 예외 정보 : 난 그냥 System.Diagnostics.Process.Start("Z:")암호로 보호 된 매핑 된 네트워크 드라이브 열기/찾아보기

+0

예외는 무엇입니까? –

+0

Pun 의도? – Reddog

+0

@Reddog. 왜 당신은 그것의 장난 쿼리를 느낍니까? 그것은 진짜 질문입니다 @ fredrik 스택 추적은 – Ravisha

답변

2

Z를 호출하고

at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start() 
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start(String fileName) 

는 : 파일 이름이 아닙니다. 암호로 보호되어 있지 않고 코드를 실행 해 보았는데 문제가 없다면 편집하십시오.

사용자 이름과 암호를 설정할 수 있으므로 ProcessStartInfo 개체를 매개 변수로 사용해보십시오.

파일 이름은 응용 프로그램 또는 문서는 다음과 같습니다

그리고 here에서 파일 이름 매개 변수에 대한

. 문서는 열려 있거나 기본 동작이 연결된 파일 형식으로 정의됩니다. 운영 체제에서 사용할 수있는 폴더 옵션 대화 상자를 사용하여 등록 된 파일 형식과 해당 컴퓨터 용 응용 프로그램을 볼 수 있습니다. 고급 단추는 등록 된 특정 파일 형식과 관련된 열린 동작이 있는지 여부를 보여주는 대화 상자로 연결됩니다.

+0

잘못된 것입니다! 예 : 다른 폴더에 액세스하려고하면 정상적으로 작동합니다. 이 process.start()는 시작 명령의 명령 줄 실행과 같습니다. – Ravisha

+0

FileName 매개 변수에 대해 추가 한 내용을 참조하십시오. – Rox

+0

감사합니다. Rox 이것은 내가 찾고있는 것입니다. – Ravisha

0

"z 드라이브"가 인 지점을 가리키는 UNC 경로를 여는 것이 좋습니다. 아마도을 가리킬 것입니다. PC 사용자가 Z :를 분리하고 원하는 경로로 바꿀 수 있다는 알림 ...

"직접 실행"과 "이 드라이브 열기"의 의미는 명확하지 않지만 코드 snip은 드라이브의 폴더에 대한 탐색기를 시작하려고 함을 나타내며 ProcessStartInfo을 자격 증명을 제공하는 메커니즘으로 사용할 수 있습니다.

해당 공유에있는 파일에 프로그래밍 방식으로 액세스하려는 경우 명의 도용을 사용하여 다른 자격 증명 하에서 파일 액세스 코드 블록을 실행할 수 있습니다. 이 Accessing a Shared File (UNC) From a Remote, Non-Trusted Domain With Credentials은 특히 유망 해 보입니다.

미리 지정된 자격 증명을 사용하여 네트워크 드라이브를 실제로 만들려고한다면 여기에 또 다른 해결책이 있습니다 (https://serverfault.com/questions/47005/specifying-username-pass-as-part-of-a-unc-path-or-map-network-drives-for-a-window/47008#47008). 연결을 끊는 것을 잊지 마십시오.

관련 문제