无法使用具有正确凭据C#的logonuser函数登录

时间:2012-11-11 16:05:35

标签: c# advapi32 logonserver

我使用模拟机制来管理远程计算机上的服务 我可以在RDP会话中使用我的用户名和密码连接到该计算机并手动启动/停止服务。 我还设法使用impersonate语句中的IntPtr.Zero令牌通过代码启动/停止服务, 但是当调用logonuser函数时,我得到一个失败(返回token = 0和error = 87)

这里有一些代码:

if (LogonUser(_userName, domain, _Password, logonType (= 5), logonProvider (= 0), out token))
{
    MessageBox.Show("success!");
    return token;
}
else
{
    MessageBox.Show("Logon user throwing " + token + " " +    Marshal.GetLastWin32Error());
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这与Windows本地安全策略

有关

用户应分配“作为服务登录”用户权限。