当计算机不在域上时,logonuser()未对无效域的用户进行身份验证
LogonUser() not authenticating user for invalid domain when computer is not on a domain
我在c 中的logonuser()API函数有一些问题。我正在测试的计算机不在域上。我正在测试的帐户在计算机上存在,但是当我提供无效的域时,它会验证登录。
这对我来说似乎不正确。
HANDLE token;
if (!LogonUser("LocalUser", "InvalidDomain", "Password",
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &token))
{
unsigned long error = GetLastError();
}
这是正确的行为吗?
我相信工作组成员不支持域登录,以便忽略域参数。这解释了您所看到的。
您可以确认。尝试使用真实域用户进行身份验证(确保没有具有相同名称的本地帐户)。登录应失败。
有一个例外。如果您使用LOGON32_LOGON_NEW_CREDENTIALS
标志(修改了现有登录而不是创建新登录),则域登录将始终成功,因为在尝试访问远程资源之前,它没有进行身份验证。
根据本网站,您应该使用"。(或",但没有记录)作为仅使用本地数据库的域。我相信"的无证件行为解释了您的登录。如果它无法在域中识别用户,它将尝试在本地识别它。
i基于此页面上的答案:http://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v = vs.85).aspx
相关文章:
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- C++如何通过用户输入删除列表元素
- 无法访问嵌套类.类的使用无效
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?
- C++循环:如何让程序在用户输入无效输入时多次重复"error"消息
- 用户定义的到右值引用的转换无效
- 即使密码/用户无效,程序仍会继续
- 如果用户输入无效,则循环
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 验证用户输入是否有效 [从 'char' 到 'char*' 的转换无效]
- 如果用户只按Enter或输入无效,则C 如何重新启动循环
- 当计算机不在域上时,logonuser()未对无效域的用户进行身份验证
- 用户定义类中的Null指针无效
- 错误无效的用户定义转换
- 当用户输入无效整数时,c++菜单卡住了
- While循环不等待用户输入(而数据类型无效)
- 无效的用户定义转换错误
- std::map中的用户定义类:二进制表达式的无效操作数
- 在无效输入后重新提示用户-c++