2010-06-04 8 views
5

Estoy intentando obtener los datos de un cuadro de contraseña wpf en una cadena segura. ¿Cómo se hace eso? lo que tengo hasta ahora:wpf cuadro de contraseña en un SecureString en C#

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

esto por supuesto no funciona, así que ¿cómo puedo obtener los datos de la contraseña sin necesidad de crear una cadena normal?

Respuesta

8

es necesario leer cada carácter en

SecureString pass = new SecureString(); 

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

o más segura utilizar la propiedad SecurePassword

SecureString pass = pbox1.SecurePassword 
+3

Hacer esto prácticamente frustra el propósito de usar 'SecureString'. –

16

Per MSDN:

Cuando se obtiene la propiedad Contraseña valor, exponer la contraseña como texto sin formato en la memoria. Para evitar este riesgo potencial de seguridad , use la propiedad SecurePassword para obtener la contraseña como SecureString.

Debe evitar el uso de la propiedad Contraseña a menos que necesite absolutamente una versión de texto sin formato de la cadena. En este caso, recupera SecureString directamente.

+1

Si hubiera una forma de establecer la contraseña usando SecureString – Sebastian

3
SecureString pass = pbox1.SecurePassword.Copy(); 
Cuestiones relacionadas