我正在用c#编写一个应用程序,该应用程序使用远程连接连接到其他机器,并在每台机器上植入一个可执行文件,然后执行它。每台机器在本地创建一个专用共享文件夹,然后异步地尝试写入其他机器的共享文件夹。访问来自不在域中的计算机的共享文件夹
问题是,当一台机器尝试写入不同机器的共享文件夹(以防它们不在同一个域中)时,它会失败。如果我尝试从一台机器手动访问另一台共享文件夹,即使我可以看到共享文件夹为每个人提供完整权限,但仍会收到提示输入凭据。
有谁知道如何解决这个问题?
谢谢!
我正在用c#编写一个应用程序,该应用程序使用远程连接连接到其他机器,并在每台机器上植入一个可执行文件,然后执行它。每台机器在本地创建一个专用共享文件夹,然后异步地尝试写入其他机器的共享文件夹。访问来自不在域中的计算机的共享文件夹
问题是,当一台机器尝试写入不同机器的共享文件夹(以防它们不在同一个域中)时,它会失败。如果我尝试从一台机器手动访问另一台共享文件夹,即使我可以看到共享文件夹为每个人提供完整权限,但仍会收到提示输入凭据。
有谁知道如何解决这个问题?
谢谢!
您可以使用通过P /调用LogonUser的API来实现这一点,但你会需要一些机制以获取用户的密码(用户的键盘是一个好这个;))
DllImport("advapi32.dll", SetLastError=true)]
static extern bool LogonUser(
string principal,
string authority,
string password,
LogonTypes logonType,
LogonProviders logonProvider,
out IntPtr token);
void login(){
bool result = LogonUser(
"Alice", "ACME", // "ACME\Alice"
pwd,
LogonTypes.Batch,
LogonProviders.Default,
out token);
if (result){
//off you go
}
}
这就是问题所在,我无法获取用户凭据,这就是为什么我使用共享文件夹,所以我不需要它。谢谢。 – Haviva 2010-04-29 12:28:49
您无法访问共享文件夹而无需对其进行身份验证?安全影响是巨大的! 你唯一的选择是让你的网络管理员允许访客访问共享,但这有点疯狂.. – 2010-04-29 13:13:33
你是什么用户?不认为你可以是本地系统或本地服务。 – 2010-12-23 02:53:57