2010-06-04 12 views
5

Sto tentando di ottenere i dati da una casella password wpf in una stringa protetta. Come è fatto? quello che ho finora:casella password wpf in SecureString in C#

SecureString pass = new SecureString(); 
     pass.AppendChar(pbox1.Password); 

questo naturalmente non funziona, così come potrei ottenere i dati di password senza creare una stringa regolare?

risposta

8

avete bisogno di leggere ogni carattere

SecureString pass = new SecureString(); 

foreach (char c in pbox1.Password) 
{ 
    pass.AppendChar(c); 
} 

o in modo più sicuro utilizzare la proprietà SecurePassword

SecureString pass = pbox1.SecurePassword 
+3

In questo modo praticamente sconfigge lo scopo di utilizzare 'SecureString'. –

16

Per MSDN:

Quando si ottiene la proprietà Password valore, esporre la password come testo normale nella memoria. Per evitare questo potenziale rischio di sicurezza, utilizzare la proprietà SecurePassword per ottenere la password come SecureString.

Si dovrebbe evitare di utilizzare la proprietà Password a meno che non sia assolutamente necessaria una versione in chiaro della stringa. In questo caso, recuperare direttamente SecureString.

+1

Se solo ci fosse un modo per impostare la password usando SecureString – Sebastian

3
SecureString pass = pbox1.SecurePassword.Copy(); 
Problemi correlati