1
據我所知,當用戶最終按下提交按鈕時,將調用GetSerialization
方法來獲取登錄詳細信息。如何從憑證提供者調用提交
我在等待一些外部信號登錄的憑證提供程序,我不希望用戶按提交按鈕。
是否可以觸發Credential Provider的提交事件?
據我所知,當用戶最終按下提交按鈕時,將調用GetSerialization
方法來獲取登錄詳細信息。如何從憑證提供者調用提交
我在等待一些外部信號登錄的憑證提供程序,我不希望用戶按提交按鈕。
是否可以觸發Credential Provider的提交事件?
我找到了一個辦法。訣竅不是調用submit
按鈕,而是使用ICredentialProviderEvents::CredentialsChanged
方法。我有一個線程運行,這將最終觸發CredentialsChanged
。然後這將啓用一個新的用戶登錄憑據。
這顯示在Microsoft示例SampleHardwareEventCredentialProvider
中。
值得注意的是,Windows LogonUI自動選擇這個新的憑據。我不知道這是否在文檔中,但這是我所經歷的行爲。
您是否已將此線程運行在單獨的服務中,或者您是否在自定義憑據提供程序中啓動了線程?當我嘗試在我的憑證提供程序的輪詢線程內等待外部信號時,UI開始閃爍,就好像它在每個循環中重新加載憑證提供程序一樣。 – roberth
我開始等待外部信號的新線程,然後調用'CredentialsChanged'。 根據我的經驗,閃爍和重新加載意味着發生了一些無效訪問(或其他錯誤)。在調試器中運行它會很有用。我這樣做的方式是運行一個單獨的程序,該程序基本上使用'CoCreateInstance'創建COM對象並調用'ICredentialProvider'方法。 – cd611
謝謝@ cd611,我會盡力的。 – roberth