Beispiel #1
0
            public void Should_start_a_new_stopwatch()
            {
                var stopwatchFactory = Substitute.For <IStopwatchFactory>();

                _ = new AccessTokenFactory(stopwatchFactory);

                stopwatchFactory.Received(1).Start();
            }
        public void SetupTests()
        {
            SecurityParameters securityParams = new SecurityParameters("mysignveryverylongsecuritykeysothatIdontgetexception", SecurityAlgorithms.HmacSha256, SecurityAlgorithms.HmacSha256Signature);

            Mock <IUserTokensDao> userTokenDao = new Mock <IUserTokensDao>();

            accessTokenFactory = new AccessTokenFactory(securityParams, 300, userTokenDao.Object);
        }
Beispiel #3
0
            public void Should_return_null_access_token_if_the_response_has_already_expired()
            {
                var factory = new AccessTokenFactory(stopwatchFactory);

                stopwatch.Elapsed.Returns(1.Seconds());

                Action action = () => factory.CreateAccessToken(CreateTokenResponse(1));

                action.Should().Throw <OpenIdException>();
            }
Beispiel #4
0
            public void Should_return_a_new_access_token_if_the_response_has_not_expired_yet()
            {
                var factory = new AccessTokenFactory(stopwatchFactory);

                stopwatch.Elapsed.Returns(1.Seconds());

                var accessToken = factory.CreateAccessToken(CreateTokenResponse(2));

                accessToken.Should().NotBeNull();
                accessToken !.HasNotExpired.Should().BeTrue();
            }
Beispiel #5
0
            public void Should_initialize_token_with_values_from_the_response_has_not_expired_yet_but_without_refresh_token()
            {
                var factory = new AccessTokenFactory(stopwatchFactory);

                stopwatch.Elapsed.Returns(1.Seconds());

                var accessToken = factory.CreateAccessToken(CreateTokenResponse(2, "access-token", null));

                accessToken.Should().NotBeNull();
                accessToken !.ToString().Should().Be("access-token");
                accessToken.TryGetRefreshToken(out _).Should().BeFalse();
            }
Beispiel #6
0
        private static void Main()
        {
            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

            WriteLine("Run operations for signed-in user, or in app-only mode.\n");
            WriteLine("[w] - web app-only\n[n] - native app-only\n[u] - as user\n\nPlease enter your choice:\n");
            string accessToken = string.Empty;

            ConsoleKeyInfo key = ReadKey();

            switch (key.KeyChar)
            {
            case 'w':
                WriteLine("\nRunning web app-only mode\n\n");
                accessToken = AccessTokenFactory.GetAccessTokenAsync(AuthenticationType.WebApp, AuthenticationMethod.Cert, ResourceType.MicrosoftGraphApi).Result;

                Demo(accessToken);

                break;

            case 'n':
                WriteLine("\nRunning native app-only mode\n\n");
                accessToken = AccessTokenFactory.GetAccessTokenAsync(AuthenticationType.NativeApp, AuthenticationMethod.Password, ResourceType.MicrosoftGraphApi).Result;

                Demo(accessToken);

                break;

            case 'u':
                WriteLine("\nRunning in user mode\n\n");
                accessToken = AccessTokenFactory.GetAccessTokenAsync(AuthenticationType.User, AuthenticationMethod.Password, ResourceType.MicrosoftGraphApi).Result;

                Demo(accessToken);

                break;

            default:
                WriteError("\nSelection not recognized. Running in web app-only mode\n\n");
                accessToken = AccessTokenFactory.GetAccessTokenAsync(AuthenticationType.WebApp, AuthenticationMethod.Password, ResourceType.MicrosoftGraphApi).Result;

                Demo(accessToken);

                break;
            }

            //*********************************************************************************************
            // End of Demo Console App
            //*********************************************************************************************

            WriteLine("\nCompleted at {0} \n Press Any Key to Exit.", DateTime.Now.ToUniversalTime());
            ReadKey();
        }
Beispiel #7
0
        public async Task <WxUser> GetSnsApiUserInfo(string code)
        {
            var token = await AccessTokenFactory.GetTokenAsync(code);

            if (token == null)
            {
                return(null);
            }

            string url = $"{WxConstants.SNSAPI_USERINFO_URL}?access_token={token.AccessToken}&openid={token.OpenId}&lang=zh_CN";

            return(await WxClient.GetAsync <WxUser>(url));
        }
Beispiel #8
0
        public override IMigrationProcessor Create(string connectionString, IAnnouncer announcer, IMigrationProcessorOptions options)
        {
            var factory = new SqlServerDbFactory();

            var accessTokenFactory = new AccessTokenFactory(_clientId, _certThumbPrint, StoreLocation.CurrentUser);
            var accessToken        = accessTokenFactory.GetTokenAsync(_authority, "https://database.windows.net/").GetAwaiter().GetResult();

            var connection = new SqlConnection(connectionString)
            {
                AccessToken = accessToken
            };

            return(new SqlServerProcessor(connection, new SqlServer2014Generator(), announcer, options, factory));
        }
Beispiel #9
0
        public async Task SendTempMsg(string toUser, string tempId, object data, string url = "", string color = null)
        {
            var token = await AccessTokenFactory.GetTokenAsync();

            if (token == null)
            {
                return;
            }

            var msg = new
            {
                touser      = toUser,
                template_id = tempId,
                data,
                url,
                color
            };

            string uri = $"{WxConstants.CGI_BIN_TEMPLATE_URL}?access_token={token.AccessToken}";

            var content = new StringContent(msg.ToJsonString(), System.Text.Encoding.UTF8, "application/json");

            await WxClient.PostAsync(uri, content);
        }