Export (0) Print
Expand All

SecureString.Clear Method

Deletes the value of the current secure string.

Namespace:  System.Security
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Sub Clear

ExceptionCondition
ObjectDisposedException

This secure string has already been disposed.

InvalidOperationException

This secure string is read-only.

The computer memory that contains the value of this secure string is zeroed, then the length of the value of this secure string is set to zero.

The following code example demonstrates how the AppendChar, InsertAt, RemoveAt, SetAt, and Clear methods affect the value of a SecureString object.

' This example demonstrates the AppendChar,  
' InsertAt, RemoveAt, SetAt, and Clear methods. 
Imports System
Imports System.Security

Class Sample
   Public Shared Sub Main()
      Dim msg1 As String = "   SecureString = {0}" & vbCrLf & "   Length = {1}" & vbCrLf
      Dim msg2 As String = "This example demonstrates the effect of the AppendChar, InsertAt," & vbCrLf & _
                           "RemoveAt, SetAt, and Clear methods on the value of a SecureString" & vbCrLf & _
                           "object. This example simulates the value of the object because the" & vbCrLf & _
                           "actual value is encrypted." & vbCrLf
      Dim ss As New SecureString()
'  
'  This sample modifies the contents of a SecureString, ss, in 
'  several steps. After each step, the length and simulated value of ss  
'  are displayed. The actual value of ss is encrypted. 
'
      Console.WriteLine(msg2)

      Console.WriteLine("1) The initial value of the SecureString object:")
      Console.WriteLine(msg1, """""", ss.Length)

      Console.WriteLine("2) AppendChar: Append 'a' to the value:")
      ss.AppendChar("a"c)
      Console.WriteLine(msg1, """a""", ss.Length)

      Console.WriteLine("3) AppendChar: Append 'X' to the value:")
      ss.AppendChar("X"c)
      Console.WriteLine(msg1, """aX""", ss.Length)

      Console.WriteLine("4) AppendChar: Append 'c' to the value:")
      ss.AppendChar("c"c)
      Console.WriteLine(msg1, """aXc""", ss.Length)

      Console.WriteLine(("5) InsertAt: Insert 'd' at the end of the value (equivalent" & vbCrLf & "     to AppendChar):"))
      ss.InsertAt(ss.Length, "d"c)
      Console.WriteLine(msg1, """aXcd""", ss.Length)

      Console.WriteLine("6) RemoveAt: Remove the last character ('d') from the value:")
      ss.RemoveAt(3)
      Console.WriteLine(msg1, """aXc""", ss.Length)

      Console.WriteLine("7) SetAt: Set the second character ('X') of the value to 'b':")
      ss.SetAt(1, "b"c)
      Console.WriteLine(msg1, """abc""", ss.Length)

      Console.WriteLine("8) Clear: Delete the value of the SecureString object:")
      ss.Clear()
      Console.WriteLine(msg1, """""", ss.Length)
   End Sub 'Main
End Class 'Sample

'This code example produces the following results: 

'This example demonstrates the effect of the AppendChar, InsertAt, 
'RemoveAt, SetAt, and Clear methods on the value of a SecureString 
'object. This example simulates the value of the object because the 
'actual value is encrypted. 

'1) The initial value of the SecureString object: 
'   SecureString = "" 
'   Length = 0 

'2) AppendChar: Append 'a' to the value: 
'   SecureString = "a" 
'   Length = 1 

'3) AppendChar: Append 'X' to the value: 
'   SecureString = "aX" 
'   Length = 2 

'4) AppendChar: Append 'c' to the value: 
'   SecureString = "aXc" 
'   Length = 3 

'5) InsertAt: Insert 'd' at the end of the value (equivalent 
'     to AppendChar): 
'   SecureString = "aXcd" 
'   Length = 4 

'6) RemoveAt: Remove the last character ('d') from the value: 
'   SecureString = "aXc" 
'   Length = 3 

'7) SetAt: Set the second character ('X') of the value to 'b': 
'   SecureString = "abc" 
'   Length = 3 

'8) Clear: Delete the value of the SecureString object: 
'   SecureString = "" 
'   Length = 0 
'

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft