9

因此,這裏是場景。我正在開發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。你們有一個示例代碼?還是有另一種更合適的方式?

謝謝你,我很欣賞你的幫助非常感謝。

+0

你有沒有解決過這個問題?我試圖做一些類似的地方,身份驗證應該基於用戶名和來自OTP令牌 – Jeff 2012-06-12 18:05:51

+0

的數字,你仍然堅持這一點?幾年前我寫了一個windows GINA擴展,如果它對你有幫助,我可以挖掘代碼。歡呼聲, Con – Greycon 2012-07-02 16:09:34

+1

Windows會根據其本地安全機構檢查您的憑據,因爲它想知道** IT **是否應該信任您。在文本文件中繞過自己的不安全憑據檢查會危及Windows的安全,所以我懷疑它會讓你這樣做。你究竟在努力實現什麼? – dajames 2012-09-25 17:48:04

回答

0

我沒有做任何工作以來GINA在Windows登錄因爲PKI成爲了事實上的憑據存儲標準,但是...

您的問題要求提供一些示例代碼,在這裏是一個完整的描述

http://msdn.microsoft.com/en-gb/magazine/cc163489.aspx#S4

這是一老一少,所以它指的是智能卡,也許當你說你的令牌仍然在談論智能卡,但我懷疑你的意思是一個USB驅動器。但是,如果您嘗試進行這種級別的開發,則應該相當簡單地將代碼交換爲智能卡讀/寫和USB讀/寫。

0

你可以從Windows SDK中試樣品。有一些子認證軟件包比完整的AP更容易實現。