C++ - 如何在 Credential Provider V1 (Vista-Win7) 中管理其他用户
C++ - How do I manage other user in Credential Provider V1 (Vista-Win7)
我为 windows 10 的凭证提供程序 V2 开发了一个代码。我管理本地用户和活动目录用户以及 windows 10 中的其他用户磁贴由凭证提供程序的 V2。
现在我开发了另一个代码用于 windows 7. 我使用来自 V1 凭据提供程序。我自定义它以显示本地用户。按照 _EnumerateOneCredential() 中的代码:
HRESULT CProvider::_EnumerateCredentials()
{
PNET_DISPLAY_USER pBuff, p;
DWORD i = 0, res, dwRec, index = 0;
do
{
res = NetQueryDisplayInformation(NULL, 1, i, 100, MAX_PREFERRED_LENGTH, &dwRec, (PVOID*)&pBuff);
if ((res == ERROR_SUCCESS) || (res == ERROR_MORE_DATA))
{
p = pBuff;
for (; dwRec > 0; dwRec--)
{
std::wstring name(p->usri1_name);
if (p->usri1_flags & UF_NORMAL_ACCOUNT && !(p->usri1_flags & UF_ACCOUNTDISABLE) && !(p->usri1_flags & UF_PASSWD_NOTREQD))
{
hr = _EnumerateOneCredential(index, name.c_str());
index++;
}
i = p->usri1_next_index;
p++;
}
NetApiBufferFree(pBuff);
}
} while (res == ERROR_MORE_DATA); // end do
return hr;
}
更改后我的凭据提供程序是:
现在我想管理 Active Directory 用户,管理(其他用户)磁贴(图中)对我来说非常重要。
如何获取?
如果我禁用其他登录方法,如密码提供程序或使用过滤器,它只会显示我的凭据提供程序用户,而其他用户和 Active Directory 用户将被隐藏。
所以我想,我必须 link 给其他用户磁贴并管理它,或者不管理它。
谢谢。
您必须实施并枚举您自己的 Other User
磁贴。
此磁贴必须接受并提供 CPFT_EDIT_TEXT
类型的输入字段,用于用户名 (UPN)、密码和您可能需要的任何其他凭据。
我为 windows 10 的凭证提供程序 V2 开发了一个代码。我管理本地用户和活动目录用户以及 windows 10 中的其他用户磁贴由凭证提供程序的 V2。
现在我开发了另一个代码用于 windows 7. 我使用来自 V1 凭据提供程序。我自定义它以显示本地用户。按照 _EnumerateOneCredential() 中的代码:
HRESULT CProvider::_EnumerateCredentials()
{
PNET_DISPLAY_USER pBuff, p;
DWORD i = 0, res, dwRec, index = 0;
do
{
res = NetQueryDisplayInformation(NULL, 1, i, 100, MAX_PREFERRED_LENGTH, &dwRec, (PVOID*)&pBuff);
if ((res == ERROR_SUCCESS) || (res == ERROR_MORE_DATA))
{
p = pBuff;
for (; dwRec > 0; dwRec--)
{
std::wstring name(p->usri1_name);
if (p->usri1_flags & UF_NORMAL_ACCOUNT && !(p->usri1_flags & UF_ACCOUNTDISABLE) && !(p->usri1_flags & UF_PASSWD_NOTREQD))
{
hr = _EnumerateOneCredential(index, name.c_str());
index++;
}
i = p->usri1_next_index;
p++;
}
NetApiBufferFree(pBuff);
}
} while (res == ERROR_MORE_DATA); // end do
return hr;
}
更改后我的凭据提供程序是:
现在我想管理 Active Directory 用户,管理(其他用户)磁贴(图中)对我来说非常重要。
如何获取?
如果我禁用其他登录方法,如密码提供程序或使用过滤器,它只会显示我的凭据提供程序用户,而其他用户和 Active Directory 用户将被隐藏。
所以我想,我必须 link 给其他用户磁贴并管理它,或者不管理它。
谢谢。
您必须实施并枚举您自己的 Other User
磁贴。
此磁贴必须接受并提供 CPFT_EDIT_TEXT
类型的输入字段,用于用户名 (UPN)、密码和您可能需要的任何其他凭据。