使用另一个用户凭据从远程路径获取文件到FileStream

6

在我的应用程序中,我使用FileStream从网络上的某个文件共享中读取文件。因此,我的remoteFilePath变量是这样的: \\computername\folder\file.pdf


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

很遗憾,我正在使用的用户(即我登录PC的用户)无法访问此文件共享。我有另一个用户(域、登录名和密码),该用户可以访问这些文件。

是否可以使用其他用户凭据来获取文件流?我能否仅扮演用户角色以获取文件,然后继续使用自己的用户呢?


类似的线程 - https://dev59.com/ZHVC5IYBdhLWcg3wbglT - KV Prajapati
1
虽然我不太喜欢发链接,但是这个链接http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/里有一段非常棒的代码可以使用。 - BugFinder
1
看起来这就是你需要的:http://msdn.microsoft.com/zh-cn/library/w070t6ka(v=vs.100).aspx - Icarus
请参考以下链接:https://dev59.com/ZHVC5IYBdhLWcg3wbglT#1197430。 - LCJ
2个回答

7
感谢您的回答。由于共享在另一个域中,因此模拟身份并不容易。
我找到了另一个更简单的解决方案。我映射了一个网络驱动器,并选中了“使用不同的凭据连接”选项。然后,我连接到这个驱动器而不是远程路径。
string mappedFilePath = filePath.Replace(@"\\computername\", @"Y:\")

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


1
你能否更详细地解释一下这个操作? - user2878881

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接