private async Task<User> LoginWithCredentials(UserCredential credential)
{
if (await _redditService.CheckLogin(credential.LoginCookie))
{
var loggedInUser = new User { Username = credential.Username, LoginCookie = credential.LoginCookie, NeedsCaptcha = false };
loggedInUser.Me = await _redditService.GetMe(loggedInUser);
return loggedInUser;
}
else
{
//we dont currently posses a valid login cookie, see if windows has a stored credential we can use for this username
var passwordVault = new Windows.Security.Credentials.PasswordVault();
try
{
var windowsCredentials = passwordVault.FindAllByResource("Baconography");
var matchingWindowsCredential = windowsCredentials.FirstOrDefault(windowsCredential => string.Compare(windowsCredential.UserName, credential.Username, StringComparison.CurrentCultureIgnoreCase) == 0);
if (matchingWindowsCredential != null)
{
matchingWindowsCredential.RetrievePassword();
return await _redditService.Login(matchingWindowsCredential.UserName, matchingWindowsCredential.Password);
}
}
catch
{
}
}
return null;
}