Поделиться через


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)

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

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