【问题标题】:how to fix the "speed bump" sign in windows pop up如何修复弹出窗口中的“减速带”标志
【发布时间】:2019-04-04 09:44:35
【问题描述】:

想要实现自动解锁凭据。

我使用了SampleV2CredentialProvider demo,在“CSampleCredential::Initialize”中写了账号密码如下

hr = SHStrDupW(L"mypassword", &_rgFieldStrings[SFI_PASSWORD]);

并更改 SetSelected 中的 *pAutoLogin= true。

但是弹出“登录”窗口,不点击按钮无法直接登录系统。

我还更改了 CSampleProvider::GetCredentialCount 中的 *pbAutoLogonWithDefault = true,但按钮仍然弹出。

【问题讨论】:

  • 您是否忘记用正确的值填充pdwDefault 输出参数?
  • 我将值填充为 *pdwDefault = DWORD(0);

标签: windows sign auto unlock credential-providers


【解决方案1】:

我刚刚检查了我的凭据提供程序之一的代码。
ICredentialProvider::GetCredentialCount 方法中,我执行以下操作:

DWORD dwSize;

*pdwCount = 0;
*pdwDefault = -1;
*pbAutoLogonWithDefault = FALSE;
dwSize = 0;

// do some internal calculations

if(dwSize > 0)
{
    *pdwCount = 1;
    *pdwDefault = 0;
    *pbAutoLogonWithDefault = TRUE;
}

除了ICredentialProviderCredential::SetSelected 我只做这个:

*pbAutoLogon = TRUE;

一切正常。
(代码 sn-ps 完全是从真实项目中复制粘贴)

【讨论】:

  • 感谢您的回复。你在哪里声明 dwSize.?我的代码在物理机上运行良好。在 VR 机器中,“登录”仍然弹出。
  • dwSize 是我用于评估决策的内部变量 - 是否执行 AutoLogon。我的解决方案在物理机和虚拟机上都可以正常工作。我刚刚修复了我的代码 sn-p。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多