我目前正在開發中VS2012(.NET 4.0)一個C#的WinForms應用程序中打開服務器上的文件。該應用程序是有點像電子郵件客戶端和顯示信息列表。並且每條消息可以附加一個或一個文件。 文件附件存儲在不同的服務器,它只能使用另一個用戶帳戶(由登錄用戶和不)訪問上。你如何使用不同的用戶帳戶憑據
當在文件附件用戶雙擊我需要打開該文件,並在相關應用程序顯示出來。即記事本中的TXT文件,Word中的DOCX文件等。
我希望我可以將完整的文件名傳遞到System.Diagnostics.Process.Start
方法中,並輸入正確的用戶名,密碼和域值,然後打開文件關聯應用程序 例如
SecureString password = new SecureString();
"MyPassword".ToCharArray().ToList().ForEach(password.AppendChar);
System.Diagnostics.Process.Start(@"\\MyServer\MyFolder\MySubFolder\MyFile.docx",
"MyUsername",
password,
"MyDomain");
但拋出一個異常與消息: 指定的可執行文件是不是這個操作系統平臺的有效應用。
我還試圖建立一個ProcessStartInfo
對象實例和FileName
屬性"Explorer.exe"
和Arguments
屬性設置爲@"\\MyServer\MyFolder\MySubFolder\MyFile.docx"
,並把它當作參數爲System.Diagnostics.Process.Start
方法。但是這也行不通。不會引發異常,文件也不會顯示。
但是,如果您查看System.Diagnostics.Process.Start
方法返回的對象,則會看到發生了InvalidOperationException
。
我的C#的問題是,我怎麼能打開並顯示一個文件(在它相關的應用程序),當文件被保存,只能使用不同的用戶憑據訪問的服務器上?
它似乎喜歡這很難做到,因爲你不應該這樣做。 –