C# LogonUser返回错误代码2

C# LogonUser返回错误代码2,c#,file,console-application,impersonation,C#,File,Console Application,Impersonation,我只是尝试简单的代码,将文件从本地计算机复制到远程服务器。问题是我从logonUser函数中得到错误代码2,我不知道为什么。我不确定将什么作为域(我尝试了本地计算机的名称、空字符串、本地主机),因为当我从该服务器映射驱动器时,我可以只使用用户名和密码 我正在使用的代码片段如下: public static void Impersonate(string domainName, string userName, string userPassword, Action actionToExecute

我只是尝试简单的代码,将文件从本地计算机复制到远程服务器。问题是我从logonUser函数中得到错误代码2,我不知道为什么。我不确定将什么作为域(我尝试了本地计算机的名称、空字符串、本地主机),因为当我从该服务器映射驱动器时,我可以只使用用户名和密码

我正在使用的代码片段如下:

public static void Impersonate(string domainName, string userName, string userPassword, Action actionToExecute)
{
    SafeTokenHandle safeTokenHandle;
    try
    {
        //parametry pripojeni
        const int LOGON32_PROVIDER_DEFAULT = 0;
        const int LOGON32_LOGON_INTERACTIVE = 2;
        const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
        //Ziskani ovladace k pristupovemu tokenu
        bool returnValue = LogonUser(userName, domainName, userPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out safeTokenHandle);
    }
    catch(Exception e) { ... }
}

returnValue始终为false,错误代码为2。如果您能告诉我可能做错了什么,我将非常高兴。

这些是家用电脑吗?或者在域上运行?另外,请概述您对域的定义。如果它通过映射工作,那么您可以使用WNetAddConnection2连接到共享路径。目前,我想测试从我的计算机到我们只有一个域的“文件服务器”的文件传输(当我对域的理解非常有限时,我将其视为一个“组”)指物理上和逻辑上相互连接的计算机)。但下一步是在拥有多个域的客户中使用它,并且不可能使用共享路径……这些是家用PC吗?或者在域上运行?另外,请概述您对域的定义。如果它通过映射工作,那么您可以使用WNetAddConnection2连接到共享路径。目前,我想测试从我的计算机到我们只有一个域的“文件服务器”的文件传输(当我对域的理解非常有限时,我将其视为一个“组”)指物理上和逻辑上相互连接的计算机)。但下一步是在拥有多个域的客户中使用它,并且不可能使用共享路径。。。