Hey, ich verwende PasswordVault zum Speichern von Benutzeranmeldeinformationen in meiner Windows 8-App.
Was ich möchte, dass die App beim Laden macht, ist zu überprüfen, ob der PasswordVault/Anmeldeinformations-Manager bereits einen gespeicherten Wert für meine App hat. Wenn nicht, möchte ich, dass sie auf der Seite bleibt, damit sich der Benutzer anmelden kann. Wenn die Anmeldeinformationen bereits vorhanden sind, möchte ich, dass sie direkt zur Seite 2 geht.
Ich habe versucht, den folgenden Code zu verwenden:
private Windows.Security.Credentials.PasswordCredential GetCredentialFromLocker()
{
Windows.Security.Credentials.PasswordCredential credential = null;
var vault = new Windows.Security.Credentials.PasswordVault();
var credentialList = vault.FindAllByResource("MYapp");
if (credentialList.Count > 0)
if (credentialList.Count == 1)
credential = credentialList[0];
else
// Benutzer auswählen
return credential;
}
und dann habe ich auf der Seite folgendes im Page_Loaded:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var loginCredential = GetCredentialFromLocker();
if (loginCredential != null)
this.Frame.Navigate(typeof(page2));
else
{
loginBigButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
signUpButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
signUpTextBlock.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
}
Das Problem ist, dass, wenn keine Anmeldeinformationen mit dem Ressourcennamen (MYapp) gespeichert sind, der Code:
var credentialList = vault.FindAllByResource("MYapp");
folgende Meldung ergibt:
WinRT-Informationen: Kann Anmeldeinformationen im Vault nicht finden
Zusätzliche Informationen: Element nicht gefunden.