Potrzebuję przechowywać zaszyfrowane dane (kilka małych ciągów) między uruchomieniami aplikacji. Nie chcę, aby użytkownik podawał hasło za każdym razem, gdy uruchamia aplikację. To znaczy. ostatecznie wszystko idzie w dół do bezpiecznego przechowywania klucza (ów) szyfrowania.Trwałe przechowywanie zaszyfrowanych danych przy użyciu .Net
Szukałem w RSACryptoServiceProvider i przy użyciu PersistentKeyInCsp, ale nie jestem pewien, jak to działa. Czy kluczowy pojemnik jest trwały między uruchomieniami aplikacji lub ponownymi uruchomieniami maszyny? Jeśli tak, czy jest to specyficzne dla użytkownika, czy specyficzne dla maszyny. To znaczy. czy przechowuję zaszyfrowane dane w profilu mobilnym użytkownika, czy mogę odszyfrować dane, jeśli użytkownik loguje się na innym komputerze?
Jeśli powyższe nie działa, jakie są moje opcje (muszę zajmować się profilami mobilnymi).
Tylko dla potomnych, trzeba zajrzeć do innego kodu do obsługi utrzymującej go gdzieś dalej „publiczne” (przynajmniej w intranecie, na przykład), więc można dostać się do niej z inne maszyny. Zwykle można użyć Environment.SpecialFolder.ApplicationData, aby uzyskać lokalizację specyficzną dla maszyny i użytkownika. –
Dzięki za odpowiedź, to powinno zadziałać. Czy masz pojęcie, jak to zrobić w wersji 1.1? ProtectedData jest nowy dla .Net 2.0 –
Aby używać DPAPI w .NET 1.1, musisz użyć P/Invoke.Zobacz tutaj całkiem kompletny przebieg: http://msdn.microsoft.com/en-us/library/aa302402.aspx –