这是与Windows凭据提供程序实现有关的问题
我想跟进这个问题。我们有一个自定义MFA解决方案,在Windows身份验证完成后提示用户输入短信/固定密码,然后再让用户进入。不幸的是,在Windows 2016和Windows 10上,如果没有任何 Activity ,winLogon.exe不会等待自定义mfa解决方案提示关闭,它恰好会登录用户,从而破坏了出现mfa提示的目的。
我已经使用Windows凭据提供程序框架部署了自定义凭据提供程序。我知道Windows在完成身份验证以向后报告状态后会调用ReportResult函数(https://msdn.microsoft.com/en-us/library/windows/desktop/bb776030(v=vs.85).aspx),但是在此关头,我希望WinLogon.exe等待(此时我的自定义mfa提示进行质询)以使此函数返回,而不是只需等待约2分钟并登录用户即可。
谁能帮助我控制这种行为。
最佳答案
不幸的是,您不能使用ReportResult函数来阻止凭据提供程序。如果身份验证失败以更新登录屏幕,则此功能特别有用。例如,如果要实现失败计数器。
对于您的情况(MFA),您应该在用户单击“提交”按钮后要求输入短信/密码,因此在GetSerialization函数中。您可以通过创建一个询问短信/密码的新窗口来执行此操作。然后,当用户发送短信/密码时,系统会使用LSA检查用户名/密码,并使用您的算法检查短信/密码。
您不能根据密码验证结果向用户询问短信/密码。
关于c# - Windows凭据提供程序实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47401427/