最近我正在嘗試為 Windows 10 制作一個自定義憑據提供程式,最后我得到了 Microsoft 為 Windows 8.1 提供的示例代碼(https://docs.microsoft.com/en-us/samples/microsoft/windows-classic -samples/credential-provider/)。我試圖讓它在我的電腦上作業,但我做不到!它只是編譯并生成一個 `SampleIcredentialProviderV2.dll 但它不起作用。我單擊專案檔案夾中的注冊表檔案,但它仍然沒有顯示在我的登錄頁面上。有人對這段代碼有經驗嗎?我怎樣才能使這項作業?謝謝。
uj5u.com熱心網友回復:
很可能 windows 找不到您的 dll 或您的憑據提供程式沒有正確注冊。
要了解如何創建憑據提供程式,需要了解兩件事。
首先,可以在此注冊表位置找到計算機上所有已注冊的憑據提供程式:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers
所有子項都是唯一標識 COM 物件的 GUID(或 CLSID),但也是憑據提供程式,因為它們必須實作 IFactory/IUnknown COM 介面。諸如 {25CBB996-92ED-457e-B28C-4774084BD562} 之類的東西。
Windows 將遍歷所有這些 CLSID,如果未過濾,將嘗試創建相應憑據提供程式的實體。為此,它將調查
HKEY_CLASSES_ROOT\CLSID
這里的所有子鍵都代表一個 COM 物件。您的憑據提供程式 CLSID 也必須出現在此處。第二部分來了,里面有另一個子鍵 InProcServer32,它包含一個默認值,表示在哪里可以找到與此 CLSID 關聯的 dll。
它可以只是 dll 名稱,但它必須在您的 PATH 環境變數或 windows/system32 檔案夾中,或者它可以是完整的檔案路徑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/440686.html
