Supprime de cette chaîne sécurisée le caractère situé à la position d'index spécifiée.
Espace de noms: System.Security
Assembly : mscorlib (dans mscorlib.dll)
Visual Basic (Déclaration)
Public Sub RemoveAt ( _
index As Integer _
)
Visual Basic (Utilisation)
Dim instance As SecureString
Dim index As Integer
instance.RemoveAt(index)
public void RemoveAt (
int index
)
public:
void RemoveAt (
int index
)
public void RemoveAt (
int index
)
public function RemoveAt (
index : int
)
Paramètres
- index
Position d'index d'un caractère dans cette chaîne sécurisée.
Il s'agit d'un index de base zéro et le premier caractère de cette instance se trouve à la position d'index zéro.
La valeur de cette chaîne sécurisée, si elle existe, est déchiffrée ; le caractère situé à la position d'index spécifiée est supprimé ; ensuite, la nouvelle valeur est chiffrée.
L'exemple de code suivant montre comment les méthodes AppendChar, InsertAt, RemoveAt, SetAt et Clear affectent la valeur d'un objet SecureString.
' 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
'
// 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
*/
// This example demonstrates the AppendChar,
// InsertAt, RemoveAt, SetAt, and Clear methods.
using namespace System;
using namespace System::Security;
int main()
{
String^ msg1 = L" SecureString = {0}\n Length = {1}\n";
String^ msg2 = L"This example demonstrates the effect of the AppendChar, InsertAt,\n"
L"RemoveAt, SetAt, and Clear methods on the value of a SecureString\n"
L"object. This example simulates the value of the object because the\n"
L"actual value is encrypted.\n";
SecureString ^ ss = gcnew 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( L"1) The initial value of the SecureString object:" );
Console::WriteLine( msg1, L"\"\"", ss->Length );
Console::WriteLine( L"2) AppendChar: Append 'a' to the value:" );
ss->AppendChar( 'a' );
Console::WriteLine( msg1, L"\"a\"", ss->Length );
Console::WriteLine( L"3) AppendChar: Append 'X' to the value:" );
ss->AppendChar( 'X' );
Console::WriteLine( msg1, L"\"aX\"", ss->Length );
Console::WriteLine( L"4) AppendChar: Append 'c' to the value:" );
ss->AppendChar( 'c' );
Console::WriteLine( msg1, L"\"aXc\"", ss->Length );
Console::WriteLine( L"5) InsertAt: Insert 'd' at the end of the value (equivalent\n"
L" to AppendChar):" );
ss->InsertAt( ss->Length, 'd' );
Console::WriteLine( msg1, L"\"aXcd\"", ss->Length );
Console::WriteLine( L"6) RemoveAt: Remove the last character ('d') from the value:" );
ss->RemoveAt( 3 );
Console::WriteLine( msg1, L"\"aXc\"", ss->Length );
Console::WriteLine( L"7) SetAt: Set the second character ('X') of the value to 'b':" );
ss->SetAt( 1, 'b' );
Console::WriteLine( msg1, L"\"abc\"", ss->Length );
Console::WriteLine( L"8) Clear: Delete the value of the SecureString object:" );
ss->Clear();
Console::WriteLine( msg1, L"\"\"", ss->Length );
return 0;
}
/*
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
*/
L'exemple de code suivant illustre l'utilisation des méthodes AppendChar et RemoveAt pour rassembler les caractères dans un mot de passe.
' This example demonstrates using the AppendChar and RemoveAt
' methods to collect a password.
Imports System
Imports System.Security
Class Sample
Public Shared Sub Main()
Dim cki As ConsoleKeyInfo
Dim m1 As String = "(This example simulates entering a password. " & _
"Do not enter an actual password.)" & vbCrLf
Dim m2 As String = "Enter your password (up to 15 letters, numbers, and underscores)" & vbCrLf & "Press BACKSPACE to delete the last character entered. " & vbCrLf & _
"Press ESCAPE to quit:"
Dim password As New SecureString()
Dim top, left As Integer
'
' The Console.TreatControlCAsInput property prevents this example from
' ending if you press CTL+C, however all other operating system keys and
' shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
' Each input character is assumed to occupy one screen column.
'
Console.TreatControlCAsInput = True
Console.Clear()
Console.WriteLine(m1)
Console.WriteLine(m2)
top = Console.CursorTop
left = Console.CursorLeft
' Read user input from the console. Store up to 15 letter, digit, or underscore
' characters in a SecureString object, or delete a character if the user enters
' a backspace. Display an asterisk (*) on the console to represent each character
' that is stored.
While True
cki = Console.ReadKey(True)
If cki.Key = ConsoleKey.Escape Then
Exit While
End If
If cki.Key = ConsoleKey.Backspace Then
If password.Length > 0 Then
Console.SetCursorPosition(left + password.Length - 1, top)
Console.Write(" "c)
Console.SetCursorPosition(left + password.Length - 1, top)
password.RemoveAt(password.Length - 1)
End If
Else
If password.Length < 15 AndAlso([Char].IsLetterOrDigit(cki.KeyChar) _
OrElse cki.KeyChar = "_"c) Then
password.AppendChar(cki.KeyChar)
Console.SetCursorPosition(left + password.Length - 1, top)
Console.Write("*"c)
End If
End If
End While
' Make the password read-only to prevent it from being modified after it has
' been collected.
password.MakeReadOnly()
End Sub 'Main
End Class 'Sample
'
'This example produces results similar to the following text:
'
'(This example simulates entering a password. Do not enter an actual password.)
'
'Enter your password (up to 15 letters, numbers, and underscores)
'Press BACKSPACE to delete the last character entered.
'Press ESCAPE to quit:
'***************
'
// This example demonstrates using the AppendChar and RemoveAt
// methods to collect a password.
using System;
using System.Security;
class Sample
{
public static void Main()
{
ConsoleKeyInfo cki;
String m1 = "(This example simulates entering a password. " +
"Do not enter an actual password.)\n";
String m2 = "Enter your password (up to 15 letters, numbers, and underscores)\n" +
"Press BACKSPACE to delete the last character entered. \nPress ESCAPE to quit:";
SecureString password = new SecureString();
int top, left;
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
// Each input character is assumed to occupy one screen column.
Console.TreatControlCAsInput = true;
Console.Clear();
Console.WriteLine(m1);
Console.WriteLine(m2);
top = Console.CursorTop;
left = Console.CursorLeft;
// Read user input from the console. Store up to 15 letter, digit, or underscore
// characters in a SecureString object, or delete a character if the user enters
// a backspace. Display an asterisk (*) on the console to represent each character
// that is stored.
while (true)
{
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.Escape) break;
if (cki.Key == ConsoleKey.Backspace)
{
if (password.Length > 0)
{
Console.SetCursorPosition(left+password.Length-1, top);
Console.Write(' ');
Console.SetCursorPosition(left+password.Length-1, top);
password.RemoveAt(password.Length-1);
}
}
else
{
if ((password.Length < 15) &&
(Char.IsLetterOrDigit(cki.KeyChar) || cki.KeyChar == '_'))
{
password.AppendChar(cki.KeyChar);
Console.SetCursorPosition(left+password.Length-1, top);
Console.Write('*');
}
}
}
// Make the password read-only to prevent it from being modified after it has
// been collected.
password.MakeReadOnly();
}
}
/*
This example produces results similar to the following text:
(This example simulates entering a password. Do not enter an actual password.)
Enter your password (up to 15 letters, numbers, and underscores)
Press BACKSPACE to delete the last character entered.
Press ESCAPE to quit:
***************
*/
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.
.NET Framework
Prise en charge dans : 3.0, 2.0