Esempio n. 1
0
        private async Task <Models.TokenResponse> Authenticate(string UserName, string Password)
        {
            HttpClient client = new HttpClient();
            var        url    = "http://127.0.0.1:8080/api/home/authenticate";

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair <string, string>("Username", UserName),
                new KeyValuePair <string, string>("Password", Password)
            });

            HttpResponseMessage response = await client.PostAsync(url, content);

            var data = await response.Content.ReadAsStringAsync();

            Models.TokenResponse MyToken = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.TokenResponse>(data);
            return(MyToken);
        }
        public async Task <TokenResponse> GetAccessToken()
        {
            var tokenEndpoint = _openIdConnectConfiguration.TokenProviderUri.AbsoluteUri;
            var clientId      = _openIdConnectConfiguration.ClientId;
            var clientSecret  = _openIdConnectConfiguration.ClientSecret;
            var scope         = _openIdConnectConfiguration.Scope;

            using var client = _httpClientFactory.Create();
            var tokenRequest =
                new ClientCredentialsTokenRequest
            {
                Address      = tokenEndpoint,
                ClientId     = clientId,
                ClientSecret = clientSecret,
                Scope        = scope
            };

            try
            {
                var response = await client.RequestClientCredentialsTokenAsync(tokenRequest);

                if (response.IsError ||
                    string.IsNullOrWhiteSpace(response.AccessToken))
                {
                    var message = "The token provider returned an error";
                    throw new OpenIdConnectException(message);
                }
                var token         = response.AccessToken;
                var lifeInSeconds = response.ExpiresIn;
                var tokenResponse = new TokenResponse(token, lifeInSeconds);
                return(tokenResponse);
            }
            catch (Exception exception)
            {
                var message = $"Unable to retrieve token from {tokenEndpoint} for client Id {clientId} and scope: {scope}";
                throw new OpenIdConnectException(message, exception);
            }
        }