Chciałbym zapytać, czy istnieje standard do przechowywania nazwy użytkownika i hasła w aplikacji Windows Phone. Pracuję nad projektem, który sprawdza użytkownika pod każdym wywołanym żądaniem. Tak więc chcę zapisać nazwę użytkownika i hasło. Może nawet dać im możliwość "zapamiętania mnie", więc jeśli nie ma standardu, aby to zrobić, będę musiał napisać to sam, ale przypuszczam, że Microsoft ma wbudowany.Czy istnieje standard przechowywania nazwy użytkownika i hasła w aplikacjach WP7?
Odpowiedz
Użyj ProtectedData. Znalazłem ten przykład na Kevin D. Wolf's efficientcoder.net:
public static String Password {
get {
if (IsolatedStorageSettings.ApplicationSettings.Contains(STR_PASSWORÐ)) {
var bytes = IsolatedstorageSettings.Applicationsettings[STR_PASSwORÐ] as byte[];
var unEncrypteBytes = ProtectedData.Unprotect(bytes, null);
return Encoding.UTF8.GetString(unEncrypteBytes, 0, unEncrypteBytes.Length);
} else {
return string.Empty;
}
}
set {
var encryptedBytes = ProtectedData.Protect(Encoding.UTF8.GetBytes(value), null);
IsolatedStorageSettings.ApplicationSettings[STR_PASSWORÐ] = encryptedBytes;
}
}
(Przepraszamy za wyciąć i wkleić musiałem użyć tekstu ze skanowania obrazu)
Powinieneś zaszyfrować skorzystać haseł i innych poufnych danych za pomocą klasy rutyny ProtectedData
i ręcznie przechowuj je w magazynie izolowanym dla swojej aplikacji.
Aby zaszyfrować
Aby odszyfrować
Ponadto, upewnij się dodać odwołanie do mscorelib przedłużony do swojego projektu. Musiałem się tego nauczyć na własnej skórze.
Dobry artykuł na ten temat to: http://debugmode.net/2011/10/16/protecting-password-or-any-data-in-windows-phone-7-using-data-protection-api/
Co jest z obrazami kodu? –
Sorry =) Pisałem odpowiedź w drodze z iPada, a napisanie kodu w przeglądarce jest dla mnie niezwykle skomplikowane. –
To nie była próba zwracania większej uwagi na odpowiedź, jeśli o to pytasz =) Chociaż teraz widzę, że jest bardziej żywy, kiedy kod jest większy. –
Cześć, dziękuję za odpowiedź, znalazłem to bardzo przydatne! Tylko jedno: napisałeś "e" zamiast "0", jak przypuszczam, jako drugi parametr w Encoding.UTF8.GetString(). Pozdrawiam ^^ –
dzięki - poprawione. Możesz poprawić odpowiedź. –