In my application I use FileStream
to read from a file, that is on the fileshare somewhere in the network. So my remoteFilePath
variable is something like: \\computername\folder\file.pdf
FileStream fileStream = new FileStream(remoteFilePath, FileMode.Open, FileAccess.Read, FileShare.None, 1024 * 1024)
Unfortunately, the user that I'm running this application with (that I'm logged into the PC with) does not have access to this fileshare. I have another user (domain, login & password), that has access to those files.
Is it possible to use the other user credentials to get a file to filestream? Can I impersonate the user only to get a file, and then continue with my own user?
Thank you for your answers. Since the share was in another domain, it was not so easy to impersonate.
I found another, easier solution. I mapped a network drive, and checked the option Connect using different credentials
. Then I connect to this drive instead of the remote path.
string mappedFilePath = filePath.Replace(@"\\computername\", @"Y:\")
and use this new string in FileStream
constructor.
You should use impersonation. More info at http://msdn.microsoft.com/en-us/library/w070t6ka.aspx
来源:https://stackoverflow.com/questions/12001972/get-file-to-filestream-from-remote-path-with-another-user-credentials