我有一个应用程序,需要检查用户的Windows会话密码。
为此,我使用Windows中的LogonUser函数。用户可以连接到域。
result = LogonUserW(wUsername, wDomain, wPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, pH);当用户连接到域时,该函数运行良好,但是,当用户关闭wifi或拔出局域网电缆以便脱机时,该函数总是返回错误代码1311,这意味着“当前没有可用的登录服务器来服务登录请求”。
LogonUser函数的第四个参数是要执行的登录操作的类型。文献资料说,如果这个参数的值是"LOGON32_LOGON_INTERACTIVE",那么登录类型需要为断开连接的操作缓存登录信息的额外开销,那么在用户在字段中的情况下,难道不应该这样做吗?
提前谢谢你的帮助。
发布于 2015-04-03 09:36:40
最后,我使用了安全支持提供者接口(SSPI),这是本页中描述的LogonUser API的替代方案:如何在Microsoft操作系统上验证用户凭据
使用代码片段中提供的SSPLogonUser函数,我可以在连接到域时检查用户凭据,但也可以检查域控制器无法到达时(在这种情况下,LogonUser API失败)。
https://stackoverflow.com/questions/28937124
复制相似问题