2013-02-11 14 views
7

Ho appena scoperto che Win8 ha una sezione sul pannello di controllo denominata Account utente e famiglia in modo sicuro con Credential Manager. Mi piacerebbe accedere alle credenziali memorizzate lì (non a recuperare le password ma usarle come token per un login). Quindi, in pratica, mi piacerebbe fare un giro sulle spalle su un software già installato.Come accedere alle credenziali memorizzate (PasswordVault?) Su Win7 e Win8?

Il più vicino a una soluzione è stato suggerito in this discussion e non è che chiudi.

  1. Dove trovo l'assemblea per Windows.Security.Credentials.PasswordVault? Sto navigando su google per due ore, ma ottengo solo informazioni sullo sviluppo di app mentre selezionerò il desktop.

  2. C'è un modo per risolvere l'accesso alle credenziali pre-archiviate sia per Win7 che per Win8? Temo un po 'che la struttura del vault sia stata drasticamente rimodellata in Win8, rendendo impossibile il targeting di entrambe le piattaforme contemporaneamente.

+0

L'assemblea per 'PasswordVault' risiede in' Windows.winmd'. –

+0

Non ho niente a che vedere con * Windows * quando provo ad aggiungere riferimenti a un assieme. Cosa potrebbe esserci di sbagliato ?! –

+0

Nel _Reference Manager_, vedi una sezione chiamata _Windows_, solo tra _COM_ e _Browse_? –

risposta

6

How to: Add or Remove References By Using the Reference Manager dice:

Nei progetti di desktop nella scheda Core non appaiono per impostazione predefinita. È possibile aggiungere il runtime di Windows aprendo il menu di scelta rapida per il nodo del progetto, la scelta di Scarica progetto, aggiungendo il seguente frammento, e ri-apertura del progetto (il nodo del progetto scegliere Ricarica Progetto) . Quando si richiama la finestra di dialogo Reference Manager, viene visualizzata la scheda Core .

<PropertyGroup> 
    <TargetPlatformVersion>8.0</TargetPlatformVersion> 
</PropertyGroup> 

Assicurarsi di selezionare la casella di Windows in questa scheda. Dovresti quindi essere in grado di utilizzare gli elementi WinRT.

+0

Non volerà per Win7, vero? –

+0

Purtroppo no. Probabilmente, riceverai un'eccezione in fase di esecuzione: 'System.PlatformNotSupportedException: l'operazione non è supportata su questa piattaforma. –

+0

per win8 e dettagli completi su come fare riferimento a http://www.codeproject.com/Articles/457335/How WinRT-API-da-NET-desktop-apps-to-call- – Cel

2

È possibile utilizzare avvolto Credential Management package. È un progetto open-source. Ho controllato su Windows 7 e funziona bene.

Al fine di risparmiare l'utilizzo di dati seguente codice:

Credential saved = new Credential("username", "password", "MyApp", CredentialType.Generic); 
    saved.PersistanceType = PersistanceType.LocalComputer; 
    saved.Save(); 

E per caricare i dati di utilizzo:

Credential credential = new Credential { Target = "MyApp", Type = CredentialType.Generic }; 
    credential.Load(); 
4

mi sono imbattuto lo stesso problema e ho scoperto che non c'è una risposta semplice dovunque.

Questo è quello che ho trovato:

  1. È necessario scaricare il progetto e aggiungere il TargetPlatformVersion di cui sopra.
  2. aggiungere il riferimento: C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Annotated\Windows.winmd
  3. aggiungere anche il riferimento: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
Problemi correlati