嘿,我正在使用PasswordVault将用户凭证存储在我的Windows 8应用程序中。检查PasswordVault /凭证管理器是否在加载应用数据
我希望应用程序在加载时执行的操作是检查PasswordVault /凭证管理器是否已为我的应用程序存储值。如果它不是我不希望它留在页面上,以便用户可以登录,但是如果凭证已经存在,那么我希望它直接进入第2页。
我尝试使用以下代码:
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
// User selecor
return credential;
}
,然后在页面加载我
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;
}
}
的问题是,如果没有存储与资源(MYAPP)证书代码:
var credentialList = vault.FindAllByResource("MYapp");
产量:
WinRT的信息:不能在跳马
找到凭据的其他信息:找不到元素。
感谢您的快速回复队友,,,我尝试了试一试,并将其作为第一件事情之一,但它仍然抛出异常。使用RetrieveAll我如何找到它不能看到的资源属性让它显示.. –
奇怪,它应该捕获该异常,你可以用try catch更新你的代码吗?另请参阅http://social.msdn.microsoft.com/Forums/windowsapps/en-US/33101f6c-479f-4828-9093-f7cbe70464d7/exception-trying-to-find-passwordcredential-in-passwordvault –
尝试使用catch(异常e)而不是指定异常类型 – sLedgem