SecureString.SetAt Method
.NET Framework 4
Replaces the existing character at the specified index position with another character.
Assembly: mscorlib (in mscorlib.dll)
[HandleProcessCorruptedStateExceptionsAttribute] public void SetAt( int index, char c )
Parameters
- index
- Type: System.Int32
The index position of an existing character in this secure string
- c
- Type: System.Char
A character that replaces the existing character.
| Exception | Condition |
|---|---|
| ObjectDisposedException |
This secure string has already been disposed. |
| InvalidOperationException |
This secure string is read-only. |
| ArgumentOutOfRangeException |
index is less than zero, or greater than or equal to the length of this secure string. |
| CryptographicException |
An error occurred while encrypting or decrypting the value of this secure string. |
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. using System; using System.Security; class Sample { public static void Main() { string msg1 = " SecureString = {0}\n Length = {1}\n"; string msg2 = "This example demonstrates the effect of the AppendChar, InsertAt,\n" + "RemoveAt, SetAt, and Clear methods on the value of a SecureString\n" + "object. This example simulates the value of the object because the\n" + "actual value is encrypted.\n"; SecureString ss = 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'); Console.WriteLine(msg1, "\"a\"", ss.Length); Console.WriteLine("3) AppendChar: Append 'X' to the value:"); ss.AppendChar('X'); Console.WriteLine(msg1, "\"aX\"", ss.Length); Console.WriteLine("4) AppendChar: Append 'c' to the value:"); ss.AppendChar('c'); Console.WriteLine(msg1, "\"aXc\"", ss.Length); Console.WriteLine("5) InsertAt: Insert 'd' at the end of the value (equivalent\n" + " to AppendChar):"); ss.InsertAt(ss.Length, 'd'); 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'); Console.WriteLine(msg1, "\"abc\"", ss.Length); Console.WriteLine("8) Clear: Delete the value of the SecureString object:"); ss.Clear(); Console.WriteLine(msg1, "\"\"", ss.Length); } } /* 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 */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.