簡體   English   中英

如何在 Windows 10 中的自定義憑據提供程序中的 LOCK 場景 CPUS_UNLOCK_WORKSTATION 條件中更改用戶的域密碼

[英]How to change the Domain Password for a user in LOCK scenario CPUS_UNLOCK_WORKSTATION condition in Custom Credential Provider in Windows 10

我正在為 Windows 10系統編寫C++ 自定義憑據提供程序 我在CPUS_LOGON 場景中成功更改域用戶密碼,當密碼過期時

ntsStatus == STATUS_PASSWORD_MUST_CHANGE

情況發生在

憑據:: ReportResult()

但是在LOCK 場景中,即 CPUS_UNLOCK_WORKSTATION ,我無法加載“PasswordchangeUI”編輯字段

舊密碼、新密碼和確認密碼

在憑據提供程序的磁貼上。

我正在使用以下代碼加載這些組件。

HRESULT hr; ICredentialProviderCredentialEvents*
_pCredProvCredentialEvents;

  hr =
_pCredProvCredentialEvents->SetFieldState((ICredentialProviderCredential*)this, SFI_LOGIN_NAME, CPFS_HIDDEN);  // successfully hides the field.
    hr = _pCredProvCredentialEvents->SetFieldState((ICredentialProviderCredential*)this, SFI_PASSWORD, CPFS_HIDDEN);    // successfully hides the field.

   hr =
_pCredProvCredentialEvents->SetFieldState((ICredentialProviderCredential*)this, SFI_OLDPASSWORD, CPFS_DISPLAY_IN_SELECTED_TILE);  // Fails to load the field.

   hr =
_pCredProvCredentialEvents->SetFieldState((ICredentialProviderCredential*)this, SFI_NEWPASSWORD, CPFS_DISPLAY_IN_SELECTED_TILE);  // Fails to load the field.

   hr =
_pCredProvCredentialEvents->SetFieldState((ICredentialProviderCredential*)this, SFI_CONFPASSWORD, CPFS_DISPLAY_IN_SELECTED_TILE); // Fails to load the field.

在上面的代碼中,我成功隱藏了 SFI_LOGIN_NAME 和 SFI_PASSWORD 字段,但我無法顯示 SFI_OLDPASSWORD、SFI_NEWPASSWORD 和 SFI_CONFPASSWORD。

如果有人可以幫助解決這個問題,我將不勝感激。

問候阿斯拉姆

試試這個序列:

  1. 首先嘗試添加新字段。
  2. 將提交按鈕重新定位到新字段之一。
  3. 隱藏舊田地。
  4. 返回CPGSR_NO_CREDENTIAL_NOT_FINISHED狀態以重新激活用戶輸入字段。

替代方案 - 嘗試使用SFI_PASSWORD而不是SFI_OLDPASSWORD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM