Ho un'applicazione WPF desktop che si autentica con Dynamics CRM 2011. Chiedo il nome utente e la password dell'utente e li uso per connettersi a Dynamics CRM 2011 utilizzando CrmConnection.parse("url={2};Username={1};Password{2}",CRMServerUrl, Username,Password)
. Questa classe si collega quindi al server CRM utilizzando le credenziali fornite (autenticate con Active Directory).
L'enigma con cui sto combattendo è che parte del design dell'applicazione è che l'autenticazione in CRM è necessaria solo una volta. Qualsiasi autenticazione oltre la prima dovrebbe avvenire automaticamente utilizzando le credenziali che l'utente ha precedentemente inserito (e sì, l'utente può modificarle nell'app se necessario). Ciò significa che ho bisogno di memorizzare le password, ma non posso cancellarle.
Attualmente utilizzo i metodi suggeriti da Jon Galloway in Crittografia delle password in un file app.config .NET . Un collega lo ha consigliato. Ho letto alcune altre domande su questo argomento, ma alcuni concetti come chiavi derivate, crittografia hardware o invio di un valore derivato sono o punti ciechi totali per me o non sono possibili all'interno dei vincoli di progettazione.
Quali sono le mie opzioni?