Una instancia de la clase System.String es inmutable y, cuando ya no se necesita, no se puede planear mediante programación para la recolección de elementos no utilizados; es decir, la instancia es de sólo lectura una vez creada y no es posible predecir cuándo se eliminará de la memoria del equipo. Por consiguiente, si un objeto String contiene información confidencial, como una contraseña, un número de tarjeta de crédito o datos personales, existe el riesgo de que la información se pueda revelar una vez utilizada, porque la aplicación no puede eliminar los datos de la memoria del equipo.
Un objeto SecureString es similar a un objeto String en que tiene un valor de texto. Sin embargo, el valor de un objeto SecureString se cifra automáticamente, se puede modificar hasta que la aplicación lo marque como de sólo lectura, y puede ser eliminado de la memoria del equipo por la aplicación o por el recolector de elementos no utilizados de .NET Framework.
El valor de una instancia de SecureString se cifra automáticamente cuando se inicializa la instancia o se modifica el valor. La aplicación puede hacer que la instancia sea inmutable y evitar modificaciones posteriores llamando al método MakeReadOnly.
Observe que SecureString no tiene ningún miembro que inspeccione, compare o convierta el valor de una clase SecureString. La ausencia de dichos miembros ayuda a proteger el valor de la instancia de la revelación accidental de datos o de la exposición malintencionada. Utilice los miembros adecuados de la clase System.Runtime.InteropServices.Marshal, como el método SecureStringToBSTR, para manipular el valor de un objeto SecureString.
La clase SecureString se deriva de la clase CriticalFinalizerObject e implementa la interfaz IDisposable. Para obtener más información sobre la implementación de la interfaz IDisposable, vea Recolección de elementos no utilizados.
La clase SecureString y sus miembros no son visibles para COM. Para obtener más información, vea ComVisibleAttribute.
Nota de la plataforma Windows 2000:
Sólo se admite SecureString en el Service Pack 3 de Windows 2000 y posterior.