如何解决如何使 v2 凭据提供程序在没有“ICredentialProviderUser”对象的情况下初始化其凭据?
我构建了一个V2凭据提供程序示例并将其注册到Windows10,单击“登录选项”后可以加载并在解锁屏幕中显示该提供程序,但无法在开机/切换时显示该提供程序-用户登录屏幕。我把一些日志放在这样的代码中
HRESULT CSampleProvider::_EnumerateCredentials()
{
DebugTrace(__FILEW__,__LINE__,_T("enter _EnumerateCredentials"));
HRESULT hr = E_UNEXPECTED;
if (_pCredProviderUserArray != nullptr)
{
DWORD dwUserCount;
_pCredProviderUserArray->GetCount(&dwUserCount);
**DebugTrace(__FILEW__,_T(" dwUserCount = %d"),dwUserCount);**
if (dwUserCount > 0)
{
ICredentialProviderUser *pCredUser;
hr = _pCredProviderUserArray->GetAt(0,&pCredUser);
if (SUCCEEDED(hr))
{
_pCredential = new(std::nothrow) CSampleCredential();
if (_pCredential != nullptr)
{
hr = _pCredential->Initialize(_cpus,s_rgCredProvFieldDescriptors,s_rgFieldStatePairs,pCredUser);
if (Failed(hr))
{
_pCredential->Release();
_pCredential = nullptr;
}
}
else
{
hr = E_OUTOFMEMORY;
}
pCredUser->Release();
}
}
}
return hr;
}
在开机/切换用户登录屏幕中 dwUserCount 为 0,因此提供程序不会初始化任何凭据。
我的问题是,如何让提供者在没有 ICredentialProviderUser
对象的情况下初始化其凭据?
提前致谢。
解决方法
确切的答案 - 没有。
新的 Windows Logon
场景假设有一些用户可以登录计算机,并且可以选择使用哪个提供商进行登录。
每个 User's tile
都会有一组来自在计算机上注册的凭据提供程序的图标。
您的提供商必须接受可以登录计算机的用户列表,并决定是否显示用户磁贴旁边的图标。
在这种情况下,唯一可能的方法是实现默认的磁贴行为,如 v1 凭据提供程序指南中所述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。