【发布时间】:2011-02-14 06:05:51
【问题描述】:
在 c# 2008 中, 我正在尝试将文件复制到目标路径(例如 \newserver\destinationFolder),该路径可以在另一个域中或使用与当前用户不同的用户名/密码。在执行 File.Copy(...) 之前如何指定这些新的网络凭据?
谢谢!
【问题讨论】:
标签: c# file authentication dns copy
在 c# 2008 中, 我正在尝试将文件复制到目标路径(例如 \newserver\destinationFolder),该路径可以在另一个域中或使用与当前用户不同的用户名/密码。在执行 File.Copy(...) 之前如何指定这些新的网络凭据?
谢谢!
【问题讨论】:
标签: c# file authentication dns copy
好问题,但我认为这是不可能的。我相信这种类型的文件从一个域复制到另一个域(没有建立信任)将被视为安全漏洞。
一些选项:
【讨论】:
查看登录用户。这是它的 pinvoke 页面:
【讨论】:
MapDrive => 以本地用户身份复制文件 => UnmapDrive。看看here:
protected int MapDrive(){
NETRESOURCEA[] resources = new NETRESOURCEA[1];
resources[0] = new NETRESOURCEA();
resources[0].dwType = 1;
int dwFlags = 1;
resources[0].lpLocalName = _DriveLetter;
resources[0].lpRemoteName = _Path;
resources[0].lpProvider = null;
int ret = WNetAddConnection2A(resources, null, null, dwFlags);
return ret;
}
protected int UnmapDrive()
{
int ret = WNetCancelConnection2A(_DriveLetter, 0, true);
return ret;
}
【讨论】: