SecureString.SetAt(Int32, Char) Método

Definição

Substitui o carácter existente na posição índice especificada por outro caractere.

public:
 void SetAt(int index, char c);
public void SetAt(int index, char c);
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
public void SetAt(int index, char c);
member this.SetAt : int * char -> unit
[<System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions>]
member this.SetAt : int * char -> unit
Public Sub SetAt (index As Integer, c As Char)

Parâmetros

index
Int32

A posição de índice de um carácter existente nesta cadeia segura.

c
Char

Uma personagem que substitui a personagem existente.

Atributos

Exceções

Este fio seguro já foi descartado.

Esta cadeia segura é apenas de leitura.

index é menor que zero, ou maior ou igual ao comprimento desta corda segura.

Ocorreu um erro ao proteger ou desproteger o valor desta cadeia segura.

Exemplos

O exemplo seguinte demonstra como os AppendCharmétodos , InsertAt, RemoveAt, SetAt, e Clear afetam o valor de um SecureString objeto.

using System;
using System.Security;

class SecureStringExample
{
    public static void Main()
    {
       string msg = "The current length of the SecureString object: {0}\n";
       Console.WriteLine("1) Instantiate the SecureString object.");
       SecureString ss = new SecureString();
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("2) Append 'a' to the value.");
       ss.AppendChar('a');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("3) Append 'X' to the value.");
       ss.AppendChar('X');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("4) Append 'c' to the value.");
       ss.AppendChar('c');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("5) Insert 'd' at the end of the value.");
       ss.InsertAt(ss.Length, 'd');
       Console.WriteLine(msg, ss.Length);

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

       Console.WriteLine("7) Set the second character of the value to 'b'.");
       ss.SetAt(1, 'b');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("8) Delete the value of the SecureString object:");
       ss.Clear();
       Console.WriteLine(msg, ss.Length);

       ss.Dispose();
    }
}
// The example displays the following output:
//       1) Instantiate the SecureString object.
//       The current length of the SecureString object: 0
//
//       2) Append 'a' to the value.
//       The current length of the SecureString object: 1
//
//       3) Append 'X' to the value.
//       The current length of the SecureString object: 2
//
//       4) Append 'c' to the value.
//       The current length of the SecureString object: 3
//
//       5) Insert 'd' at the end of the value.
//       The current length of the SecureString object: 4
//
//       6) Remove the last character ('d') from the value.
//       The current length of the SecureString object: 3
//
//       7) Set the second character of the value to 'b'.
//       The current length of the SecureString object: 3
//
//       8) Delete the value of the SecureString object:
//       The current length of the SecureString object: 0
Imports System.Security

Module Example
    Public Sub Main()
       Dim msg As String = "The current length of the SecureString object: {0}" + vbCrLf
       Console.WriteLine("1) Instantiate the SecureString object.")
       Dim ss As New SecureString()
       Console.WriteLine(msg, ss.Length)

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

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

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

       Console.WriteLine("5) Insert 'd' at the end of the value.")
       ss.InsertAt(ss.Length, "d"c)
       Console.WriteLine(msg, ss.Length)

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

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

       Console.WriteLine("8) Delete the value of the SecureString object:")
       ss.Clear()
       Console.WriteLine(msg, ss.Length)

       ss.Dispose()
    End Sub
End Module
' The example displays the following output:
'       1) Instantiate the SecureString object.
'       The current length of the SecureString object: 0
'
'       2) Append 'a' to the value.
'       The current length of the SecureString object: 1
'
'       3) Append 'X' to the value.
'       The current length of the SecureString object: 2
'
'       4) Append 'c' to the value.
'       The current length of the SecureString object: 3
'
'       5) Insert 'd' at the end of the value.
'       The current length of the SecureString object: 4
'
'       6) Remove the last character ('d') from the value.
'       The current length of the SecureString object: 3
'
'       7) Set the second character of the value to 'b'.
'       The current length of the SecureString object: 3
'
'       8) Delete the value of the SecureString object:
'       The current length of the SecureString object: 0

Observações

O índice é baseado em zero; O primeiro carácter neste caso está na posição índice zero.

Se a implementação usar um mecanismo de proteção, como encriptação, o valor da cadeia segura, se existir, é desprotegido; c é atribuído à posição de índice especificada; depois o novo valor é novamente protegido.

Aplica-se a