我有以下代码,仅当使用IP地址指定nr.lpRemoteName服务器部分时才有效。
当它的主机名为ERROR_SESSION_CREDENTIAL_CONFLICT时将被返回。
我可以使用运行此代码的计算机上的主机名访问该文件。
有什么想法吗?
[DllImport("Mpr.dll")]
private static extern int WNetUseConnection(
IntPtr hwndOwner,
NETRESOURCE lpNetResource,
string lpPassword,
string lpUserID,
int dwFlags,
string lpAccessName,
string lpBufferSize,
string lpResult
);
[StructLayout(LayoutKind.Sequential)]
private class NETRESOURCE
{
public int dwScope = 0;
public int dwType = 0;
public int dwDisplayType = 0;
public int dwUsage = 0;
public string lpLocalName = "";
public string lpRemoteName = "";
public string lpComment = "";
public string lpProvider = "";
}
string password = "12345";
string username = "ole1";
const int RESOURCETYPE_DISK = 0x00000001;
NETRESOURCE nr = new NETRESOURCE();
nr.dwType = RESOURCETYPE_DISK;
nr.lpRemoteName = @"\\[IP Address]\vids";
//nr.lpRemoteName = @"[Host Name]\vids";
int ret = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null);
答案 0 :(得分:0)
这表示您的Windows登录会话已与该主机建立连接,但该连接在[username]参数中传递了另一个值。
1219(0x4C3)
不允许同一用户使用多个用户名与服务器或共享资源建立多个连接。断开先前所有与服务器或共享资源的连接,然后重试。
可能的解决方案: