示例#1
0
        static void Main(string[] args)
        {
            System.Diagnostics.Debugger.Launch();
            var p = new CodeFlow();

            // Handle Arguments
            var authcoderesponse = args.SkipWhile(a => a != "authresponse").Skip(1).FirstOrDefault();

            var authclient = new OAuth2Client(
                new Uri(Constant.TokenEndpointAuthorize),
                Constant.CodeClientId,
                Constant.CodeClientSecret);

            if (authcoderesponse != null)
            {
                ReceiveAuthorizationCode(authcoderesponse);
            }
            else
            {
                // Request Authorization code, open URL in browser
                System.Diagnostics.Process.Start(p.CreateAuthUrl(authclient));
            }


            Console.Read();
        }
示例#2
0
        static void Main(string[] args)
        {
            System.Diagnostics.Debugger.Launch();
            var p = new CodeFlow();

            // Handle Arguments
            var authcoderesponse = args.SkipWhile(a => a != "authresponse").Skip(1).FirstOrDefault();

            var authclient = new OAuth2Client(
            new Uri(Constant.TokenEndpointAuthorize),
            Constant.CodeClientId,
            Constant.CodeClientSecret);

            if (authcoderesponse != null)
            {
                ReceiveAuthorizationCode(authcoderesponse);
            }
            else
            {
                // Request Authorization code, open URL in browser
                System.Diagnostics.Process.Start(p.CreateAuthUrl(authclient));
            }

            Console.Read();
        }
示例#3
0
        private static void ReceiveAuthorizationCode(string authcoderesponse)
        {
            var p = new CodeFlow();

            // Get Token
            TokenResponse resultToken = null;

            try
            {
                resultToken = Util.GetToken(authcoderesponse, Constant.RedirectUriCode).Result;
            }
            catch (AggregateException ex)
            {
                if (ex.InnerException.GetType() == typeof(HttpRequestException))
                {
                    Console.WriteLine("Exception: {0}", ex.InnerException.Message);
                    Console.Write("Wrong Authorization code?");
                }
                else
                {
                    throw;
                }
            }


            Util.ParseToken(resultToken);

            while (true)
            {
                p.CheckTokenUntilInvalid(resultToken.AccessToken);


                // Refresh token

                var refreshedToken = RefreshToken(resultToken);

                Util.ParseToken(refreshedToken);

                // Check new Token
                Console.WriteLine("New Token valid: {0}", Util.ValidateToken(refreshedToken.AccessToken));
                resultToken = refreshedToken;
            }
        }
示例#4
0
        private static void ReceiveAuthorizationCode(string authcoderesponse)
        {
            var p = new CodeFlow();

            // Get Token
            TokenResponse resultToken = null;
            try
            {
                resultToken = Util.GetToken(authcoderesponse, Constant.RedirectUriCode).Result;
            }
            catch (AggregateException ex)
            {
                if (ex.InnerException.GetType() == typeof (HttpRequestException))
                {
                    Console.WriteLine("Exception: {0}", ex.InnerException.Message);
                    Console.Write("Wrong Authorization code?");
                }
                else
                {
                    throw;
                }
            }

            Util.ParseToken(resultToken);

            while (true)
            {
               p.CheckTokenUntilInvalid(resultToken.AccessToken);

                // Refresh token

                var refreshedToken = RefreshToken(resultToken);

                Util.ParseToken(refreshedToken);

                // Check new Token
                Console.WriteLine("New Token valid: {0}", Util.ValidateToken(refreshedToken.AccessToken));
                resultToken = refreshedToken;
            }
        }