我有一个应用程序可以将位于本地硬盘驱动器上任何位置的文件复制到网络共享上的目录中。只有特殊的域帐户才能访问网络目录。我通常以这种方式使用Impersonator-Class来解决问题:
using(new MyImpersonator()
{
File.Copy(source, destination);
}
但是当我想从特殊目录(例如Windwos-Dektop)复制文件时,这会导致问题。然后我收到UnauthorizedAccessException,因为有权在网络共享上写入的域帐户没有从本地桌面读取的权限。由于我的客户的限制,在安装期间为特殊域帐户提供从本地计算机上的每个文件夹读取的权限不是一种选择。
对我来说,解决方法是在C:\ ProgramData \ MyApp中创建一个临时目录,该目录可由本地和网络用户访问,并首先将文件复制到此临时目录,然后使用特殊域帐户到网络共享。但这不是很有效。
有没有人能为这个问题找到更智能的解决方案?