我一直在尝试使用LogonUser(...)
来获取用户帐户的访问令牌,例如this MSDN sample。
// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);
当我运行示例(具有管理员权限)时,在给定.
域和本地用户帐户名和密码时它可以正常工作,但无论我做什么,我都会收到错误代码1326(如果我尝试使用域帐户,则登录失败:未知用户名或密码错误)。如果我为域输入垃圾,我会得到相同的结果,这让我想知道它是否真的与DC联系。
什么可以阻止这种工作?
答案 0 :(得分:1)
在我的情况下,事实是,虽然我作为域用户登录到我的计算机,但我的计算机本身并不是域的一部分。一旦添加到域中,样本就开始起作用了。
答案 1 :(得分:1)
就我而言,与问题提问者类似的问题是,我尝试进行身份验证的帐户位于我当前计算机不属于的域中。与原始海报不同,我的机器不应该也不能成为其他域名的一部分。我希望登录对该域上的资源执行操作。
答案是以下
bool success = LogonUser(
userName,
domain,
password,
(int)LOGON32_LOGON_NEW_CREDENTIALS, //9
(int)LOGON32_PROVIDER_DEFAULT, //0
out userToken);
定义了以下常量:
public const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
public const int LOGON32_PROVIDER_DEFAULT = 0;
希望这可以帮助在类似情况下迷失的其他人。
答案 2 :(得分:0)
对于这种情况,请将DOMAIN\LOGIN
与空域名一起使用...