因此,這裏是場景。我正在開發Windows 7中的登錄系統。我創建了一個Credential Provider,其中包含一個Credential。憑證有三個輸入字段,用戶名,密碼和PIN。自定義Windows身份驗證包
根據我所學的文檔(CMIIW),當我們填寫字段並單擊登錄時,WINLOGON將檢索用戶名和密碼,並通過調用LSALogonUser()進行身份驗證發送給LSA。然後LSA將嘗試與認證包KERBEROS(用於遠程登錄)或MSV1_0(用於本地登錄)協商。
現在假定只有本地情況,用戶名和密碼將被傳遞給MSV1_0,並與SAM數據庫中的用戶進行覈對。現在的事情是,我不希望它被SAM數據庫檢查。比方說,我有一個文件C:\ users.txt,其中包含條目爲三元組:{username;密碼;銷}。這裏的所有用戶名都是windows中的現有用戶。我如何使驗證按照我的方式進行(檢查文件C:\ users.txt。
如果我沒有弄錯,我們可以創建我們自己的認證軟件包來'包裝'MSV1_0。你們有一個示例代碼?還是有另一種更合適的方式?
謝謝你,我很欣賞你的幫助非常感謝。
你有沒有解決過這個問題?我試圖做一些類似的地方,身份驗證應該基於用戶名和來自OTP令牌 – Jeff 2012-06-12 18:05:51
的數字,你仍然堅持這一點?幾年前我寫了一個windows GINA擴展,如果它對你有幫助,我可以挖掘代碼。歡呼聲, Con – Greycon 2012-07-02 16:09:34
Windows會根據其本地安全機構檢查您的憑據,因爲它想知道** IT **是否應該信任您。在文本文件中繞過自己的不安全憑據檢查會危及Windows的安全,所以我懷疑它會讓你這樣做。你究竟在努力實現什麼? – dajames 2012-09-25 17:48:04