我目前正在开发中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#的问题是,我怎么能打开并显示一个文件(在它相关的应用程序),当文件被保存,只能使用不同的用户凭据访问的服务器上?
它似乎喜欢这很难做到,因为你不应该这样做。 –