Windows凭据提供程序-桌面锁定时密码已过期

时间:2018-08-21 11:35:44

标签: c++ c winapi credential-providers

im正在从事凭据提供程序的工作,并遇到以下问题:

当桌面锁定在终端服务器上并且密码过期时,CP似乎无法更改密码。

我可以确定必须在ReportResult()中更改密码,然后打开一个对话框,询问新密码并打包一个KERB_CHANGEPASSWORD_REQUEST并交到GetSerialization()中。当用户最初登录(CPUS_LOGON)时,此方法有效。

但是在CPUS_UNLOCK_WORKSTATION中(当用户已经登录时)在交出ntsStatus (which is 0xC0000224)

之后,我在ReportResult()中又得到了相同的KERB_CHANGEPASSWORD_REQUEST

所以我想知道是否有人知道这两种情况之间的区别-logonUI是否期望除KERB_CHANGEPASSWORD_REQUEST之外的其他程序包?

我还尝试将GetSerializationResponse "status"的{​​{1}}设置为CPGSR_RETURN_CREDENTIAL_FINISHED(在技术参考中,它被认为是密码更改完成的指示,但是那可能是{{1} }。

正在测试的安装程序是带有Win2016 DC的Win2012 R2终端服务器。

感谢您的帮助,谢谢!

0 个答案:

没有答案