Пусть зашифровать данные и записать его в файл, например так:ProtectedData.Unprotect (DPAPI) перестает работать после смены пароля
byte[] encrypted =
ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
File.WriteAllBytes(filename, encrypted);
дешифрования как просто:
byte[] encrypted = File.ReadAllBytes(filename);
byte[] decrypted =
ProtectedData.Unprotect(encrypted, null, DataProtectionScope.CurrentUser);
Теперь, когда я изменяю мой пароль для Windows между вызовами «Защитить и снять защиту», «Снять защиту» выдает исключение. Я хочу, чтобы зашифрованные данные были связаны с моей учетной записью пользователя, но я также хочу, чтобы он перестал работать с изменениями пароля.
Я предполагаю, что я должен передать данные в Windows, а не записывать их в свой собственный файл, чтобы Windows могла повторно шифровать его при изменениях пароля. Я просто не могу найти документацию, которая говорит мне, как это сделать. Кто-нибудь знает?
Это было быстро! Спасибо, это была проблема. Если я позволю пользователю изменить свой пароль, он будет работать. –
Quick Q, если я сброшу пароль учетной записи, а затем снова верну его обратно к своему старому паролю, будет ли Unprotect работать снова? – Shane
Диалог содержит _irreversible loss_, поэтому он не будет работать. – sisve