2010-11-17 99 views

回答

0

編輯:誤解了原來的問題,因爲PIC是不可見的。

我不知道如果你能做到,你通過WMI想要什麼。不過,我認爲使用DPAPI可能是可行的,但文檔似乎並沒有讓它變得很容易。但是,有一個名爲NCrypto的開源項目,它有一個名爲UICredentialsHelper的類,它可能會告訴你如何去做,或者至少如何開始。

0

沒有Windows API來獲取用戶的密碼。密碼不存儲在Windows中。相反,Windows存儲單向哈希版本。

你可以使用WindowsIdentity.GetCurrent的用戶名()。或者,您可以通過Environment.UserName屬性獲取登錄的用戶名。

雖然可以更改憑證.....好運:)那是對我最好的答案。我不認爲微軟會給我們這樣做的能力。

+2

-1:海報在談論Windows憑據管理器,它用來存儲用戶名和密碼。它不會存儲散列,而是存儲機器加密的密碼,因此可以將其解密。 – 2011-03-26 10:21:16

2

Ookii.Dialogs包含一個憑證對話框,根據需要調用CredUIPromptForCredentialsCredUIPromptForWindowsCredentials

編輯:全權證書API詳述在http://msdn.microsoft.com/en-us/library/aa374731%28v=VS.85%29.aspx#credentials_management_ui_functions - 但它可能會非常棘手,從託管代碼來實現。在CredUIPromptForWindowsCredentials之後,您將撥打CredWrite來保存憑證。

+0

據我所知,任何這只是讓用戶使用他們的憑據登錄。我可能是錯的,但我不相信這個API中有任何東西能夠改變憑據。 – 2010-11-17 16:39:10

+0

@Andy這與登錄無關。它涉及將憑據存儲在Windows 7保險庫中。 – stuartd 2010-11-18 10:48:49

0

[空隙] Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType的= WindowsRuntime] (新物體Windows.Security.Credentials.PasswordVault).RetrieveAll()| %{$ .RetrievePassword(); $}

相關問題