SecureString.InsertAt(Int32, Char) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vloží znak do tohoto zabezpečeného řetězce na pozici zadaného indexu.
public:
void InsertAt(int index, char c);
public void InsertAt (int index, char c);
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
public void InsertAt (int index, char c);
member this.InsertAt : int * char -> unit
[<System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions>]
member this.InsertAt : int * char -> unit
Public Sub InsertAt (index As Integer, c As Char)
Parametry
- index
- Int32
Index pozice, kde c
je vložen parametr.
- c
- Char
Znak, který má být vložen.
- Atributy
Výjimky
Tento zabezpečený řetězec již byl uvolněn.
Tento zabezpečený řetězec je jen pro čtení.
index
je menší než nula nebo větší než délka tohoto zabezpečeného řetězce.
-nebo- Provedení této operace by způsobilo, že délka tohoto zabezpečeného řetězce je větší než 65 536 znaků.
Při ochraně nebo odemknutí hodnoty tohoto zabezpečeného řetězce došlo k chybě.
Příklady
Následující příklad ukazuje, jak AppendChar metody, InsertAt , RemoveAt , SetAt a Clear ovlivňují hodnotu SecureString objektu.
using namespace System;
using namespace System::Security;
void main()
{
String^ msg = L" The current length of the SecureString object: {0}\n";
SecureString ^ ss = gcnew SecureString;
Console::WriteLine(L"1) Instantiate the SecureString object:");
Console::WriteLine(msg, ss->Length );
Console::WriteLine(L"2) Append 'a' to the value:");
ss->AppendChar('a');
Console::WriteLine(msg, ss->Length );
Console::WriteLine(L"3) Append 'X' to the value:");
ss->AppendChar('X');
Console::WriteLine(msg, ss->Length);
Console::WriteLine(L"4) Append 'c' to the value:");
ss->AppendChar('c');
Console::WriteLine(msg, ss->Length);
Console::WriteLine(L"5) Insert 'd' at the end of the value:");
ss->InsertAt(ss->Length, 'd');
Console::WriteLine(msg, ss->Length);
Console::WriteLine(L"6) Remove the last character ('d') from the value:");
ss->RemoveAt(3);
Console::WriteLine(msg, ss->Length);
Console::WriteLine(L"7) Set the second character ('X') of the value to 'b':" );
ss->SetAt(1, 'b');
Console::WriteLine(msg, ss->Length );
Console::WriteLine(L"8) Delete the value of the SecureString object:");
ss->Clear();
Console::WriteLine(msg, ss->Length);
delete ss;
}
/*
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
*/
using System;
using System.Security;
class Example
{
public static void Main()
{
string msg = "The curent 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 curent length of the SecureString object: 0
//
// 2) Append 'a' to the value.
// The curent length of the SecureString object: 1
//
// 3) Append 'X' to the value.
// The curent length of the SecureString object: 2
//
// 4) Append 'c' to the value.
// The curent length of the SecureString object: 3
//
// 5) Insert 'd' at the end of the value.
// The curent length of the SecureString object: 4
//
// 6) Remove the last character ('d') from the value.
// The curent length of the SecureString object: 3
//
// 7) Set the second character of the value to 'b'.
// The curent length of the SecureString object: 3
//
// 8) Delete the value of the SecureString object:
// The curent length of the SecureString object: 0
Imports System.Security
Module Example
Public Sub Main()
Dim msg As String = "The curent 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 curent length of the SecureString object: 0
'
' 2) Append 'a' to the value.
' The curent length of the SecureString object: 1
'
' 3) Append 'X' to the value.
' The curent length of the SecureString object: 2
'
' 4) Append 'c' to the value.
' The curent length of the SecureString object: 3
'
' 5) Insert 'd' at the end of the value.
' The curent length of the SecureString object: 4
'
' 6) Remove the last character ('d') from the value.
' The curent length of the SecureString object: 3
'
' 7) Set the second character of the value to 'b'.
' The curent length of the SecureString object: 3
'
' 8) Delete the value of the SecureString object:
' The curent length of the SecureString object: 0
Poznámky
Index je založený na nule; první znak v tomto zabezpečeném řetězci je na pozici indexu nula.
Pokud implementace používá mechanismus ochrany, jako je například šifrování, je hodnota zabezpečeného řetězce, pokud existuje, nechráněná; c
je vložen na pozici zadaného indexu. nová hodnota je znovu chráněna. InsertAtMetoda vrací stejné výsledky jako AppendChar metodu, která vloží znak na konci zabezpečeného řetězce, pokud index
InsertAt je parametr nastaven na délku této instance.