SecureString Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents text that should be kept confidential, such as by deleting it from computer memory when no longer needed. This class cannot be inherited.
public ref class SecureString sealed : IDisposable
public sealed class SecureString : IDisposable
type SecureString = class
interface IDisposable
Public NotInheritable Class SecureString
Implements IDisposable
- Inheritance
-
SecureString
- Implements
Examples
The following example demonstrates how to use a SecureString to secure a user's password for use as a credential to start a new process.
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Security;
public class Example
{
public static void Main()
{
// Instantiate the secure string.
SecureString securePwd = new SecureString();
ConsoleKeyInfo key;
Console.Write("Enter password: ");
do {
key = Console.ReadKey(true);
// Ignore any key out of range.
if (((int) key.Key) >= 65 && ((int) key.Key <= 90)) {
// Append the character to the password.
securePwd.AppendChar(key.KeyChar);
Console.Write("*");
}
// Exit if Enter key is pressed.
} while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
try {
Process.Start("Notepad.exe", "MyUser", securePwd, "MYDOMAIN");
}
catch (Win32Exception e) {
Console.WriteLine(e.Message);
}
finally {
securePwd.Dispose();
}
}
}
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Security
Public Class Example
Public Shared Sub Main()
' Instantiate the secure string.
Dim securePwd As New SecureString()
Dim key As ConsoleKeyInfo
Console.Write("Enter password: ")
Do
key = Console.ReadKey(True)
' Ignore any key out of range
If CInt(key.Key) >= 65 And CInt(key.Key <= 90) Then
' Append the character to the password.
securePwd.AppendChar(key.KeyChar)
Console.Write("*")
End If
' Exit if Enter key is pressed.
Loop While key.Key <> ConsoleKey.Enter
Console.WriteLine()
Try
Process.Start("Notepad.exe", "MyUser", securePwd, "MYDOMAIN")
Catch e As Win32Exception
Console.WriteLine(e.Message)
Finally
securePwd.Dispose()
End Try
End Sub
End Class
Remarks
For more information about this API, see Supplemental API remarks for SecureString.
Constructors
SecureString() |
Initializes a new instance of the SecureString class. |
SecureString(Char*, Int32) |
Initializes a new instance of the SecureString class from a subarray of Char objects. This constructor is not CLS-compliant. The CLS-compliant alternative is SecureString(). |
Properties
Length |
Gets the number of characters in the current secure string. |
Methods
AppendChar(Char) |
Appends a character to the end of the current secure string. |
Clear() |
Deletes the value of the current secure string. |
Copy() |
Creates a copy of the current secure string. |
Dispose() |
Releases all resources used by the current SecureString object. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
InsertAt(Int32, Char) |
Inserts a character in this secure string at the specified index position. |
IsReadOnly() |
Indicates whether this secure string is marked read-only. |
MakeReadOnly() |
Makes the text value of this secure string read-only. |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
RemoveAt(Int32) |
Removes the character at the specified index position from this secure string. |
SetAt(Int32, Char) |
Replaces the existing character at the specified index position with another character. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |