private void picGMailLogin_Click(object sender, EventArgs e) { _authMode = AuthMode.Google; wbrMain.Show(); pnlLogin.Hide(); btnDefaultAuth.Show(); picGMailLogin.Hide(); pnlLogin.Hide(); picOutlook.Hide(); picYahoo.Hide(); wbrMain.Navigate(GoogleOAuth2Provider.BuildAuthenticationUri()); }
private void Authenticate(object arg) { try { if (_authMode == AuthMode.Google) { GoogleAccessToken token = GoogleOAuth2Provider.GetAccessToken(_oAuth2Code); GoogleProfile profile = GoogleOAuth2Provider.GetUserProfile(token); Program.ImapClient.Credentials = new OAuth2Credentials(profile.email, token.access_token); } else if (_authMode == AuthMode.Outlook) { var token = OutlookOAuth2Provider.GetAccessToken(_oAuth2Code); var profile = OutlookOAuth2Provider.GetUserProfile(token.access_token); Program.ImapClient.Credentials = new OAuth2Credentials(profile.emails.account, token.access_token); } else if (_authMode == AuthMode.Yahoo) { var token = YahooOAuth2Provider.GetAccessToken(_oAuth2Code); Program.ImapClient.Credentials = new OAuth2Credentials(token.xoauth_yahoo_guid, token.access_token, "ImapX"); } if (Program.ImapClient.Login()) { Invoke(new SuccessDelegate(OnAuthenticateSuccessful)); } else { Invoke(new FailedDelegate(OnAuthenticateFailed)); } } catch (Exception ex) { Invoke(new FailedDelegate(OnAuthenticateFailed), new[] { ex }); } }