public async Task <ViewResult> SendToken()
        {
            var signingCredentials = KeyingMaterial.JsonWebKeyRsa256SigningCredentials;

            signingCredentials.CryptoProviderFactory = new CryptoProviderFactory()
            {
                CustomCryptoProvider = new AsyncCryptoProvider(KeyingMaterial.JsonWebKeyRsa256SigningCredentials.Key, KeyingMaterial.JsonWebKeyRsa256SigningCredentials.Algorithm, true)
            };

            var payload = new JObject()
            {
                { JwtRegisteredClaimNames.Email, "*****@*****.**" },
                { JwtRegisteredClaimNames.GivenName, "Bob" },
                { JwtRegisteredClaimNames.Iss, "http://Default.Issuer.com" },
                { JwtRegisteredClaimNames.Aud, "http://Default.Audience.com" },
                { JwtRegisteredClaimNames.Nbf, "2017-03-18T18:33:37.080Z" },
                { JwtRegisteredClaimNames.Exp, "2021-03-17T18:33:37.080Z" }
            };

            var accessToken = await _tokenHandler.CreateJWSAsync(payload, signingCredentials).ConfigureAwait(false);

            ViewBag.Error    = string.Empty;
            ViewBag.Response = "Token verification response has not been recieved yet.";
            ViewBag.Title    = "AsyncWebsite";
            try
            {
                var httpClient = new HttpClient();
                httpClient.DefaultRequestHeaders.Add(AuthenticationConstants.AuthorizationHeader, AuthenticationConstants.BearerWithSpace + accessToken);
                var httpResponse = await httpClient.GetAsync(MiddleTierEndpoint).ConfigureAwait(false);

                ViewBag.Response = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.ToString();
            }

            ViewData["Name"] = "AsyncWebsite";

            return(View("Index"));
        }