我正在編寫一個憑據提供程序,它可以在用戶登錄Windows帳戶時更正用戶密碼,並且使用錯誤的鍵盤語言設置意外鍵入密碼(例如烏克蘭語而非拉丁語,例如)。相同的鍵但不同的字母。現在我需要一種方法來攔截用戶輸入的密碼,如果輸入錯誤,則需要更正密碼。作爲起點,我使用Windows SDK中的憑據提供程序。它在標準模式下工作正常(如默認的CP)。但我找不到從哪裏獲得並更正用戶輸入的密碼。我認爲HRESULT CSampleCredential::GetStringValue(DWORD dwFieldID, PWSTR* ppwz)
修改登錄到Windows帳戶時用戶輸入的密碼
方法是正確的做法。與
hr = SHStrDupW(ppwstrCorrected, ppwz);
凡ppwstrCorrected中包含的任何原始密碼或糾正一個替代
hr = SHStrDupW(_rgFieldStrings[dwFieldID], ppwz);
字符串。但是這沒有任何作用。證書提供者繼續像以前一樣工作。我甚至試圖通過在GetStringValue被調用時返回一些亂碼來「打破」我的提供者。但樣本提供者仍然是標準樣本。是的,我試圖通過示例提供程序登錄,而不是標準,因爲它們很容易通過位圖上的位圖進行區分。那麼,我可以在哪裏攔截進入Windows進行檢查的輸入密碼?
謝謝你的迴應!我找到了解決問題的方法, – ambeid 2014-12-02 12:42:09