SecureString Класс

Определение

Представляет текст, который должен храниться в конфиденциальном виде, например при удалении его из памяти компьютера, если он больше не нужен. Этот класс не наследуется.

public ref class SecureString sealed : IDisposable
public sealed class SecureString : IDisposable
type SecureString = class
    interface IDisposable
Public NotInheritable Class SecureString
Implements IDisposable
Наследование
SecureString
Реализации

Примеры

В следующем примере показано, как защитить SecureString пароль пользователя для использования в качестве учетных данных для запуска нового процесса.

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Security;

public class Example
{
    public static void Main()
    {
        // Instantiate the secure string.
        SecureString securePwd = new SecureString();
        ConsoleKeyInfo key;

        Console.Write("Enter password: ");
        do {
           key = Console.ReadKey(true);
           
           // Ignore any key out of range.
           if (((int) key.Key) >= 65 && ((int) key.Key <= 90)) {
              // Append the character to the password.
              securePwd.AppendChar(key.KeyChar);
              Console.Write("*");
           }   
        // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();
        
        try {
            Process.Start("Notepad.exe", "MyUser", securePwd, "MYDOMAIN");
        }
        catch (Win32Exception e) {
            Console.WriteLine(e.Message);
        }
        finally {
           securePwd.Dispose();
        }
    }
}
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Security

Public Class Example
    Public Shared Sub Main()
        ' Instantiate the secure string.
        Dim securePwd As New SecureString()
        Dim key As ConsoleKeyInfo
        
        Console.Write("Enter password: ")
        Do
           key = Console.ReadKey(True)

           ' Ignore any key out of range
           If CInt(key.Key) >= 65 And CInt(key.Key <= 90) Then    
              ' Append the character to the password.
              securePwd.AppendChar(key.KeyChar)
              Console.Write("*")
           End If                                    
        ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()
        
        Try
            Process.Start("Notepad.exe", "MyUser", securePwd, "MYDOMAIN")
        Catch e As Win32Exception
            Console.WriteLine(e.Message)
        Finally
           securePwd.Dispose()
        End Try
    End Sub
End Class

Комментарии

Дополнительные сведения об этом API см. в дополнительных примечаниях API для SecureString.

Конструкторы

Имя Описание
SecureString()

Инициализирует новый экземпляр класса SecureString.

SecureString(Char*, Int32)

Инициализирует новый экземпляр SecureString класса из субаррей Char объектов.

Этот конструктор не соответствует CLS. Альтернатива, совместимая с CLS, является SecureString().

Свойства

Имя Описание
Length

Возвращает количество символов в текущей безопасной строке.

Методы

Имя Описание
AppendChar(Char)

Добавляет символ в конец текущей безопасной строки.

Clear()

Удаляет значение текущей безопасной строки.

Copy()

Создает копию текущей безопасной строки.

Dispose()

Освобождает все ресурсы, используемые текущим SecureString объектом.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
InsertAt(Int32, Char)

Вставляет символ в эту безопасную строку по указанной позиции индекса.

IsReadOnly()

Указывает, помечена ли эта безопасная строка только для чтения.

MakeReadOnly()

Делает текстовое значение этой безопасной строки доступной только для чтения.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
RemoveAt(Int32)

Удаляет символ в указанной позиции индекса из этой безопасной строки.

SetAt(Int32, Char)

Заменяет существующий символ в указанной позиции индекса другим символом.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел