Supongamos que cifrar los datos y escribir en un archivo de la siguiente manera:ProtectedData.Unprotect (DPAPI) deja de funcionar después de cambio de contraseña
byte[] encrypted =
ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
File.WriteAllBytes(filename, encrypted);
Decodificación es tan sencillo:
byte[] encrypted = File.ReadAllBytes(filename);
byte[] decrypted =
ProtectedData.Unprotect(encrypted, null, DataProtectionScope.CurrentUser);
Ahora cuando cambio mi contraseña de Windows entre las llamadas a Proteger y Desproteger, Desproteger lanzará una excepción. Quiero que los datos cifrados se vinculen a mi cuenta de usuario, pero también quiero que sobrevivan a los cambios de contraseña.
Supongo que tengo que pasar los datos a Windows en lugar de escribirlos en mi propio archivo, para que Windows pueda volver a cifrarlo en los cambios de contraseña. Simplemente no puedo encontrar la documentación que me dice cómo. ¿Alguien sabe?
¡Eso fue rápido! Gracias amigo, ese fue el problema. Si dejo que el usuario cambie su propia contraseña, funciona. –
Q rápido si reinicio la contraseña de la cuenta, y luego la vuelvo a configurar de nuevo a su contraseña anterior, Desproteger comenzaría a funcionar de nuevo? – Shane
El diálogo indica _ pérdida reversible_, por lo que no funcionaría. – sisve