Example #1
0
        public static async Task <ODConnection> SignInToMicrosoftAccount(string userid, string path)
        {
            FileDataStore  datastore       = new FileDataStore(path);
            AppTokenResult oldRefreshToken = await LoadToken(datastore, userid, CancellationToken.None).ConfigureAwait(false);

            AppTokenResult appToken = null;

            if (oldRefreshToken != null)
            {
                appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken.RefreshToken);
            }

            if (null == appToken)
            {
                string code = await loginform.GetAuthenticationToken(msa_client_id, new[] { "wl.offline_access", "wl.basic", "wl.signin", "onedrive.readwrite" }, userid, "https://login.live.com/oauth20_authorize.srf", "https://login.live.com/oauth20_desktop.srf", LoginOption.OneDrive);

                appToken = await OneDriveWebAuthorization.RedeemAuthorizationCodeAsync(msa_client_id, "https://login.live.com/oauth20_desktop.srf", msa_client_secret, code);
            }

            if (null != appToken)
            {
                SaveRefreshToken(appToken, datastore, userid);

                return(new ODConnection("https://api.onedrive.com/v1.0", new OAuthTicket(appToken)));
            }

            return(null);
        }
Example #2
0
        public static async Task <ODConnection> SignInToMicrosoftAccount(System.Windows.Forms.IWin32Window parentWindow, string userid, string path)
        {
            FileDataStore  datastore       = new FileDataStore(path);
            AppTokenResult oldRefreshToken = await LoadToken(datastore, userid, CancellationToken.None).ConfigureAwait(false);

            AppTokenResult appToken = null;

            if (oldRefreshToken != null)
            {
                appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken.RefreshToken);
            }

            if (null == appToken)
            {
                appToken = await MicrosoftAccountOAuth.LoginAuthorizationCodeFlowAsync(msa_client_id,
                                                                                       msa_client_secret,
                                                                                       new[] { "wl.offline_access", "wl.basic", "wl.signin", "onedrive.readwrite" });
            }

            if (null != appToken)
            {
                SaveRefreshToken(appToken.RefreshToken, datastore, userid);

                return(new ODConnection("https://api.onedrive.com/v1.0", new OAuthTicket(appToken)));
            }

            return(null);
        }
        public static async Task <OAuthTicket> SignInToMicrosoftAccount(System.Windows.Forms.IWin32Window parentWindow)
        {
            string         oldRefreshToken = TerraViewer.Properties.Settings.Default.RefreshToken;
            AppTokenResult appToken        = null;

            if (!string.IsNullOrEmpty(oldRefreshToken))
            {
                appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken);
            }

            if (null == appToken)
            {
                appToken = await MicrosoftAccountOAuth.LoginAuthorizationCodeFlowAsync(msa_client_id,
                                                                                       msa_client_secret,
                                                                                       new[] { /*"wl.offline_access", "wl.basic", */ "wl.signin", "wl.emails" /*, "onedrive.readwrite"*/ });
            }

            if (null != appToken)
            {
                SaveRefreshToken(appToken.RefreshToken);

                return(new OAuthTicket(appToken));
            }

            return(null);
        }
Example #4
0
        public static async Task <ODConnection> SignInToMicrosoftAccount(System.Windows.Forms.IWin32Window parentWindow)
        {
            string         oldRefreshToken = Properties.Settings.Default.RefreshToken;
            AppTokenResult appToken        = null;

            if (!string.IsNullOrEmpty(oldRefreshToken))
            {
                appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken);
            }

            if (null == appToken)
            {
                appToken = await MicrosoftAccountOAuth.LoginAuthorizationCodeFlowAsync(msa_client_id,
                                                                                       msa_client_secret,
                                                                                       new[] { "wl.offline_access", "wl.basic", "wl.signin", "onedrive.readwrite" });
            }

            SaveRefreshToken(appToken.RefreshToken);

            if (null != appToken)
            {
                return(new ODConnection("https://api.onedrive.com/v1.0", new OAuthTicket(appToken)));
            }

            return(null);
        }
Example #5
0
        public static async Task <ODConnection> SignInToMicrosoftAccount(string oldRefreshToken,
                                                                         MemberStorageAccess access)
        {
            AppTokenResult appToken = null;

            if (!string.IsNullOrEmpty(oldRefreshToken))
            {
                //  appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken);
            }

            if (null == appToken)
            {
                //appToken = await MicrosoftAccountOAuth.LoginAuthorizationCodeFlowAsync(msa_client_id,
                //   msa_client_secret,
                //  new[] { "wl.offline_access", "wl.basic", "wl.signin", "onedrive.readwrite" });
            }

            if (null != appToken)
            {
                SaveRefreshToken(appToken.RefreshToken);

                return(new ODConnection("https://api.onedrive.com/v1.0", new OAuthTicket(appToken)));
            }

            return(null);
        }
Example #6
0
 public static async Task SaveToken(FileDataStore datastore, string userid, AppTokenResult token, CancellationToken cancellation)
 {
     cancellation.ThrowIfCancellationRequested();
     if (datastore != null)
     {
         await datastore.StoreAsync <AppTokenResult>(userid, token);
     }
 }
Example #7
0
 private static async void SaveRefreshToken(AppTokenResult AppToken, FileDataStore datastore, string userid)
 {
     if (AppToken != null)
     {
         AppTokenResult settings = AppToken;
         await SaveToken(datastore, userid, settings, CancellationToken.None);
     }
 }
Example #8
0
 private static async void SaveRefreshToken(string refreshToken, FileDataStore datastore, string userid)
 {
     if (!string.IsNullOrEmpty(refreshToken))
     {
         AppTokenResult settings = new AppTokenResult();
         settings.RefreshToken = refreshToken;
         await SaveToken(datastore, userid, settings, CancellationToken.None);
     }
 }
Example #9
0
 private void PopulateOAuthTicket(AppTokenResult newTicket)
 {
     if (null != newTicket)
     {
         AccessToken     = newTicket.AccessToken;
         TokenExpiration = DateTimeOffset.Now.AddSeconds(newTicket.AccessTokenExpirationDuration);
         TokenType       = newTicket.TokenType;
         RefreshToken    = newTicket.RefreshToken;
     }
 }
Example #10
0
        public async Task <bool> RefreshAccessTokenAsync()
        {
            return(true);

            var newTicket = new AppTokenResult(); // await OAuthAuthenticator.RenewAccessTokenAsync(this);

            PopulateOAuthTicket(newTicket);

            return(newTicket != null);
        }
Example #11
0
        public static async Task <AppTokenResult> RenewAccessTokenAsync(OAuthTicket ticket, FileDataStore datastore, string userid)
        {
            string         oldRefreshToken = ticket.RefreshToken;
            AppTokenResult appToken        = null;

            if (!string.IsNullOrEmpty(oldRefreshToken))
            {
                appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken);
                await SaveToken(datastore, userid, appToken, CancellationToken.None);
            }
            return(appToken);
        }
Example #12
0
        public static async Task <AppTokenResult> RenewAccessTokenAsync(OAuthTicket ticket)
        {
            var            oldRefreshToken = ticket.RefreshToken;
            AppTokenResult appToken        = null;

            if (!string.IsNullOrEmpty(oldRefreshToken))
            {
                //appToken = await MicrosoftAccountOAuth.RedeemRefreshTokenAsync(msa_client_id, msa_client_secret, oldRefreshToken);
                SaveRefreshToken(appToken.RefreshToken);
            }

            return(appToken);
        }
Example #13
0
 public OAuthTicket(AppTokenResult ticket)
 {
     PopulateOAuthTicket(ticket);
 }