SecureString.InsertAt(Int32, Char) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вставляет знак в заданную индексом позицию защищенной строки.
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)
Параметры
- index
- Int32
Индекс позиции вставки параметра c
.
- c
- Char
Вставляемый знак.
- Атрибуты
Исключения
Защищенная строка уже удалена.
Данная защищенная строка доступна только для чтения.
Значение index
менее нуля или более длины защищенной строки.
-или-
При выполнении этой операции длина защищенной строки превысит 65 536 символов.
Произошла ошибка при защите значения этой защищенной строки или снятии с него защиты.
Примеры
В следующем примере показано, как AppendCharметоды , InsertAt, RemoveAt, SetAtи Clear влияют на значение SecureString объекта .
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
Комментарии
Индекс отсчитывается от нуля; Первый символ в этой безопасной строке находится в нулевой позиции индекса.
Если в реализации используется механизм защиты, например шифрование, значение защищенной строки, если таковое имеется, не защищено; c
вставляется в указанную позицию индекса; затем новое значение повторно защищено. Метод InsertAt возвращает те же результаты, что AppendChar и метод , который вставляет символ в конец безопасной строки, если index
параметр имеет InsertAt длину этого экземпляра.