2014-11-13 93 views
2

過去,關於如何以編程方式安裝驅動器進行了大量有成效的討論。使用TLS安全的.Net映射網絡驅動器

這個鏈接是一個富有成效的例子: How do I map a network drive that requires a username and password in .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。這是一個.NET 4.0應用程序,我們的測試基礎從Windows 7開始。由於我們按照所示的流程運行這個程序,因此我不確定沒有多大關係。

我不能使用WNetAddConnection2和相關的導入,因爲這是一個遠程驅動器。另一端是暴露Webdav的Linux,它對SSL非常適用,但不適用於TLS。他們正在逐步取消SSL,所以我必須使用TLS。

任何方式來以編程方式掛載它可能會用TLS罰款,但我還沒有找到成功的組合。

任何幫助表示讚賞。

+0

只是爲了檢查,你去查看在電線上(例如,使用Wireshark),你是確實使用SSLv3和不TLSv1.0或以上?許多SSL/TLS堆棧透明地實現了這一點,並且很可能它使用了一些系統設置(或者至少是更全局的),除非你在代碼中明確調整了版本。 – Bruno

+0

布魯諾,優秀的問題!該系統以前只有SSLv3允許,它的工作原理非常清楚,在這種情況下它可能只有SSLv3。但是,當他們禁用SSL並僅允許TLS失敗時。當這導致各種問題時,他們重新啓用了SSLv3和TLS,如果TLS協商失敗,它將回退到SSLv3。這工作。我沒有進入像wireshark這樣的東西,看看它是否落入SSLv3。但是,由於TLS單獨失敗,我懷疑它是否要在該配置下使用TLS。無論如何,SSLv3將很快被移除,因此無法生存。 – JoeDoddleBang

+0

也可能存在密碼套件可用的問題(以及啓用了哪個版本的TLS)。 Wireshark應該能夠告訴你客戶聲稱在ClientHello消息中支持什麼。考慮到你在這裏以編程方式進行的操作基本上只是調用一個命令行實用程序,我會首先查看操作系統設置以實現此操作。 – Bruno

回答

0

問題最終不是Windows問題,而是Apache問題。

Apache需要的不僅僅是關閉SSLv3,而是輕微的代碼更改和重新編譯。

這僅適用於Windows 7的連接,所以我不知道有關Windows 8

相關問題