2014-11-13 3 views
2

과거에는 프로그래밍 방식으로 드라이브를 마운트하는 방법에 대한 많은 논의가있었습니다. 내가없는 것 같다 무엇 그러나 How do I map a network drive that requires a username and password in .NET?TLS 보안을 사용하는 .Net의 네트워크 드라이브

는, TLS가 필요한 경우이 탑재 수행하는 방법입니다 :

이 링크는 하나의 생산적인 예이다. NET.EXE 사용 X : \ "의 [email protected] : 443 \ 폴더"/ 사용자 : 사용자 이름 암호

이와 코드에서 사용할 수 있습니다

우리는 이런 것들을 볼

System.Diagnostics.ProcessStartInfo process = new System.Diagnostics.ProcessStartInfo(); process.FileName = "net.exe"; process.Arguments = "use Z: \\\\[email protected]\\MyFolder\\ PassW0rd /user:JoeUser"; process.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; System.Diagnostics.Process p = System.Diagnostics.Process.Start(process); // Other stuff...

이러한 종류의 작업은 SSL에는 좋지만 TLS에는 적합하지 않습니다. 이것은 Windows 7에서 시작하는 우리의 테스트 기반을 가진 .Net 4.0 응용 프로그램입니다. 우리가 보여 주듯이 이것을 프로세스로 실행하기 때문에 그다지 중요하지 않습니다.

원격 드라이브이기 때문에 WNetAddConnection2 및 관련 가져 오기를 사용할 수 없습니다. 다른 끝은 Webdav를 드러내는 리눅스이고 그것은 SSL을 위해 잘 작동하지만 TLS는 특별히 작동하지 않습니다. 그들은 TLS를 사용해야하므로 SSL을 단계적으로 제거하고 있습니다.

프로그래밍 방식으로 마운트하는 방법은 TLS를 사용하는 것이 좋지만 성공적인 조합을 찾지 못했습니다.

도움을 주시면 감사하겠습니다.

+0

그냥 확인 모른다 연결하는 윈도우 7에 적용 (예를 들어, 와이어 샤크와) 당신은 참으로 SSLv3에하지 TLSv1.0을 사용하고 또는 위? 많은 SSL/TLS 스택은이를 투명하게 처리하며 코드에서 명시 적으로 버전을 조정하지 않는 한 일부 시스템 설정 (또는 적어도 더 글로벌 한 것)을 사용하고있을 가능성이 큽니다. – Bruno

+0

브루노, 탁월한 질문입니다! 이전에는 시스템에 SSLv3 만 허용되었으며 SSLv3 만 가능했던 경우에는 매우 효과적이었습니다. 그러나 SSL을 사용하지 않고 TLS 만 허용 한 경우 실패했습니다. 이로 인해 모든 종류의 문제가 발생했을 때 SSLv3 및 TLS가 다시 활성화되었습니다. TLS 협상에 실패하면 SSLv3으로 되돌아갑니다. 이 작동합니다. 나는 실제로 SSLv3에 떨어지는지를보기 위해 wireshark와 같은 것을 사용하지 않았다. 그러나 TLS만으로는 실패하기 때문에 그 구성 하에서 TLS로가는 것은 의심 스럽습니다. SSLv3은 곧 제거되어 어쨌든 실행되지 않습니다. – JoeDoddleBang

+0

또한 사용할 수있는 암호화 제품군 및 사용할 수있는 TLS 버전과 관련된 문제가있을 수 있습니다. Wireshark는 ClientHello 메시지에서 클라이언트가 지원할 것을 주장 할 수 있어야합니다. 여기에서 프로그래밍 방식으로 수행하는 작업은 기본적으로 명령 줄 유틸리티를 호출하는 것으로 간주되므로 먼저 수동으로 설정하기 위해 OS 설정을 살펴 보겠습니다. – Bruno

답변

0

문제는 궁극적으로 Windows 문제가 아니라 Apache 문제입니다.

Apache는 SSLv3을 끄지 않고 약간의 코드 만 변경하고 다시 컴파일해야합니다.

이것은 단지 당신이 실제로 와이어에 확인했다, 그래서 윈도우 8에 대한

관련 문제