AuthBridge.Clients.AzureAdOAuthClient.QueryAccessToken C# (CSharp) Method

QueryAccessToken() protected method

protected QueryAccessToken ( Uri returnUrl, string authorizationCode ) : string
returnUrl System.Uri
authorizationCode string
return string
        protected override string QueryAccessToken(Uri returnUrl, string authorizationCode)
        {
            var entity =
                MessagingUtilities.CreateQueryString(
                    new Dictionary<string, string> {
                        { "client_id", _appId },
                        { "redirect_uri", returnUrl.AbsoluteUri },
                        { "client_secret", _appSecret },
                        { "code", authorizationCode },
                        { "grant_type", "authorization_code" },
                        {"resource",GraphApiResource}
                    });

            var tokenRequest = WebRequest.Create(_tokenEndpoint);
            tokenRequest.ContentType = "application/x-www-form-urlencoded";
            tokenRequest.ContentLength = entity.Length;
            tokenRequest.Method = "POST";

            using (var requestStream = tokenRequest.GetRequestStream())
            {
                var writer = new StreamWriter(requestStream);
                writer.Write(entity);
                writer.Flush();
            }

            var tokenResponse = (HttpWebResponse)tokenRequest.GetResponse();
            if (tokenResponse.StatusCode == HttpStatusCode.OK)
            {
                using (var responseStream = tokenResponse.GetResponseStream())
                {
                    var tokenData = JsonHelper.Deserialize<OAuth2AccessTokenData>(responseStream);
                    if (tokenData != null)
                    {
                        return tokenData.AccessToken;
                    }
                }
            }

            return null;
        }