예제 #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);
        }
예제 #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);
        }
예제 #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);
        }
예제 #5
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);
        }
        public static async Task <AppTokenResult> RenewAccessTokenAsync(OAuthTicket ticket)
        {
            string         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);
        }