public RedirectResult RequestAuthentication()
        {
            string handleAuthenticationResponseUrl = Url.Action("HandleAuthenticationResponse", "Account", null, Request.Url.Scheme);
            string antiForgeryStateToken           = Guid.NewGuid().ToString();

            Session["OAuthAntiForgeryStateToken"] = antiForgeryStateToken;
            string antiReplayNonceToken = Guid.NewGuid().ToString();

            Session["OAuthAntiReplayNonceToken"] = antiReplayNonceToken;

            var request = new AuthenticationRequest(
                scope: "openid",
                responseType: "code",
                clientId: Configuration.CLIENT_ID,
                redirectUri: handleAuthenticationResponseUrl,
                state: antiForgeryStateToken,
                nonce: antiReplayNonceToken);

            string requestUrl = request.GetRequestUrl(Configuration.AUTHORIZATION_ENDPOINT_URL);

            return(Redirect(requestUrl));
        }