2012-08-17 106 views
4

在我的应用程序中,我使用FileStream从文件中读取文件,即在网络中的文件共享中。所以我remoteFilePath变量是一样的东西:\\computername\folder\file.pdf使用其他用户凭据从远程路径获取文件到FileStream

FileStream fileStream = new FileStream(remoteFilePath, FileMode.Open, FileAccess.Read, FileShare.None, 1024 * 1024) 

不幸的是,我运行这个应用程序(即我登录到与PC)没有访问该文件共享用户。我有另一个用户(域,登录&密码),有权访问这些文件。

是否可以使用其他用户凭据来获取文件到文件流?我可以冒充用户只有才能获取文件,然后继续使用我自己的用户?

+0

类似的线程 - http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting-to-a-network-share – adatapost 2012-08-17 08:04:48

+1

这似乎是这样您需要:http://msdn.microsoft.com/en-us/library/w070t6ka(v=vs.100).aspx – Icarus 2012-08-17 08:12:16

+0

请参阅http://stackoverflow.com/questions/295538/how-to-provide-user -name-and-password-when-connecting-to-a-network-share/1197430#1197430 – Lijo 2013-02-04 09:34:08

回答

5

谢谢你的回答。由于该份额是在另一个领域,因此冒充并不容易。

我发现了另一个更简单的解决方案。我映射了一个网络驱动器,并检查了选项Connect using different credentials。然后我连接到这个驱动器而不是远程路径。

string mappedFilePath = filePath.Replace(@"\\computername\", @"Y:\") 

并在FileStream的构造函数中使用这个新字符串。

+0

不错的解决方法! – Zenuka 2014-02-03 08:04:01

+1

您能否更具体地解释操作? – user2878881 2014-10-13 14:02:17