Другие API-интерфейсы защиты данных ASP.NET Core

Предупреждение

Типы, реализующие любой из следующих интерфейсов, должны быть потокобезопасны для нескольких вызывающих объектов.

ISecret

Интерфейс ISecret представляет значение секрета, например материал криптографического ключа. Он содержит следующую поверхность API:

  • Length: int

  • Dispose(): void

  • WriteSecretIntoBuffer(ArraySegment<byte> buffer): void

Метод WriteSecretIntoBuffer заполняет предоставленный буфер необработанным значением секрета. Причина, по которой этот API принимает буфер в качестве параметра, а не возвращает byte[] напрямую, заключается в том, что это позволяет вызывающей стороне закрепить объект буфера, исключая распространение секретных данных в управляемом сборщике мусора.

Тип Secret является конкретной реализацией ISecret, в которой секретное значение хранится в оперативной памяти процесса. На платформах Windows значение секрета шифруется с помощью CryptProtectMemory.