Exemplo n.º 1
0
        public async Task <AuthenticationResult> AuthenticateWithTokenAsync(string token)
        {
            AuthenticationResult result = new AuthenticationResult();

            using (HttpClient client = CreateHttpClient())
            {
                // create a basic auth header.
                client.DefaultRequestHeaders.Add("token", token);


                // get content.
                HttpResponseMessage responseMessage = await client.GetAsync("https://api.github.com");

                if (responseMessage.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    GitHubHeaders headers = new GitHubHeaders(responseMessage.Headers);
                    return(new AuthenticationResult()
                    {
                        OptionHeader = headers.GitHubOptionHeader
                    });
                }

                responseMessage.EnsureSuccessStatusCode();
                return(new AuthenticationResult()
                {
                    AuthenticationSuccessful = true
                });
            }
        }
Exemplo n.º 2
0
        public async Task <AuthenticationResult> AuthenticateAsync(string username, string password, string tfaCode)
        {
            AuthenticationResult result = new AuthenticationResult();

            using (HttpClient client = CreateHttpClient())
            {
                // create a basic auth header.
                byte[] authroizationHeader = Encoding.ASCII.GetBytes($"{username}:{password}");
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authroizationHeader));

                // do we have a tfa code?
                if (!String.IsNullOrWhiteSpace(tfaCode))
                {
                    client.DefaultRequestHeaders.Add("X-GitHub-OTP", tfaCode);
                }

                // get content.
                HttpResponseMessage responseMessage = await client.GetAsync("https://api.github.com");

                if (responseMessage.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    GitHubHeaders headers = new GitHubHeaders(responseMessage.Headers);
                    return(new AuthenticationResult()
                    {
                        OptionHeader = headers.GitHubOptionHeader
                    });
                }

                responseMessage.EnsureSuccessStatusCode();
                return(new AuthenticationResult()
                {
                    AuthenticationSuccessful = true
                });
            }
        }