Как мне сохранить SecureString в реестре? - PullRequest
1 голос
/ 02 июня 2011

Я хочу сохранить System.SecureString в реестре. Это возможно? И как мне это сделать?

Может ли моя программа снова расшифровать строку при следующем запуске?

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Невозможно обойтись в зашифрованном виде без вспомогательного слоя. Он «изначально не поддерживает какую-либо форму сериализации и фактически не может быть проверен в своей нативной форме. Чтобы даже получить какую-либо информацию из этого вам нужно пройти через PInvoke или SecureStringToBSTR API. Оба из которых предоставят вам доступ к string в незашифрованном виде.

Один из способов увидеть эту работу -

  1. Преобразование SecureString в BSTR через SecureStringToBSTR
  2. Шифрование BSTR
  3. Сохранить результат в реестре

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

1 голос
/ 02 июня 2011

Взгляните на статью Хранение личных данных в MSDN.Вам нужно будет вызвать вызов LsaStorePrivateData ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...