0

我这里有一个奇怪的场景。我的应用程序连接到文件服务器以使用 UNC 列出目录中的文件。在过去的几年里,它一直在工作,没有任何问题。最近,我的网络管理员重新启动了服务器,结果我开始收到 LogonUser : Unknown user or bad password 错误。根据网络管理员的说法,域用户帐户的所有内容都已正确设置。用户名和密码都正确。我需要在下面的代码中更改什么吗?

const int LOGON32_LOGON_INTERACTIVE = 2;
const int LOGON32_LOGON_NETWORK = 3;
const int LOGON32_LOGON_BATCH = 4;
const int LOGON32_LOGON_SERVICE = 5;
const int LOGON32_LOGON_UNLOCK = 7;
const int LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
const int LOGON32_PROVIDER_DEFAULT = 0;

[DllImport("advapi32.dll", SetLastError = true)]
public static extern int LogonUser(
    string lpszUsername,
    string lpszDomain,
    string lpszPassword,
    int dwLogonType,
    int dwLogonProvider,
    out IntPtr phToken
    );
[DllImport("advapi32.dll", SetLastError = true)]
public static extern int ImpersonateLoggedOnUser(
    IntPtr hToken
);

[DllImport("advapi32.dll", SetLastError = true)]
static extern int RevertToSelf();

[DllImport("kernel32.dll", SetLastError = true)]
static extern int CloseHandle(IntPtr hObject);
int TResult = LogonUser(ConfigurationManager.AppSettings["ServerUserName"].ToString(), @"\\server\folder", ConfigurationManager.AppSettings["ServerPassword"].ToString(), LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, out lnToken);

请告知我应该与我的网络管理员检查的其他内容。提前致谢。

4

1 回答 1

0

我看不出您正在执行的代码有任何本质上的错误。所以,我不确定为什么这会突然停止工作。但是,如果您愿意进行一些重构,那么似乎还有其他人遇到了类似的问题。以下答案之一应该可以为您提供所需的洞察力。

当 dns 或 netbios 不可用时,如何模拟用户通过网络复制文件

在 C# 中访问 Windows 中受密码保护的网络驱动器?

于 2013-01-28T17:00:31.730 回答