Exemplo n.º 1
0
        public ActionResult Redirect()
        {
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            // Here we get the Code in the Query String, using that we can get access token
            var    request = Request;
            string code    = Request.QueryString["code"];

            if (!string.IsNullOrEmpty(code))
            {
                string reqUrl = FormatRequestUrl(code);
                // Getting access token, if access token is null, will return to Index page [relogin takes place]
                GitHubAccessDetails _accessDetails = GetAccessToken(reqUrl);
                if (_accessDetails.access_token != null)
                {
                    Session["GitHubToken"] = _accessDetails.access_token;
                    ViewBag.Response       = _accessDetails.access_token;
                    return(RedirectToAction("Status"));
                }
                else
                {
                    return(RedirectToAction("Issue"));
                }
            }
            return(RedirectToAction("index", "home"));
        }
Exemplo n.º 2
0
 // Formatting the POST URL
 // Get the access token
 public GitHubAccessDetails GetAccessToken(string body)
 {
     try
     {
         using (var client = new HttpClient())
         {
             client.DefaultRequestHeaders.Accept.Clear();
             client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
             var request = new HttpRequestMessage(HttpMethod.Post, string.Format("https://github.com/login/oauth/access_token/{0}", body));
             HttpResponseMessage response = client.SendAsync(request).Result;
             if (response.IsSuccessStatusCode)
             {
                 accessDetails = JsonConvert.DeserializeObject <GitHubAccessDetails>(response.Content.ReadAsStringAsync().Result);
                 return(accessDetails);
             }
         }
     }
     catch (Exception ex)
     {
         ProjectService.logger.Info(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + ex.Message + "\t" + "\n" + ex.StackTrace + "\n");
     }
     return(new GitHubAccessDetails());
 }