public void TestComputeCodeChallenge()
        {
            var instance = new AuthorizationCodeGrantArgs();

            instance.CodeVerifier = "99DccPNbKI1E4NlAsbBcO06W_Yn~UlONrF4iYoyWMRq0D~RRjLGZO9-P2mTeL4Ih";
            var result = instance.ComputeCodeChallenge();

            Assert.That(result, Is.EqualTo("QUYHD2BztPSx9-Iw9QJQUF4JF6ypgDywhHWOqpPJ8x8"));
        }
コード例 #2
0
        /// <summary>
        /// Builds the full Uri for starting the OpenID Connect authentication / authorization process against the server
        /// using browser-based Authorization Code Grant flow (optionally with PKCE).
        /// </summary>
        /// <param name="config">OAuth / OpenID Connect configuration of the client</param>
        /// <param name="responseType">OIDC response type</param>
        /// <param name="args"><see cref="AuthorizationCodeGrantArgs"/> specifying arguments for the process to start</param>
        /// <param name="query">Query parameters to populate</param>
        /// <returns><see cref="Uri"/> to use for starting the process</returns>
        private static void BuildAuthorizationUriQuery(
            IBrowserBasedAuthorizationConfig config,
            string responseType,
            AuthorizationCodeGrantArgs args,
            NameValueCollection query)
        {
            BuildAuthorizationUriQuery(config, responseType, args as BrowserBasedAuthorizationArgs, query);

            if (args != null && args.CodeVerifier != null)
            {
                query["code_challenge_method"] = "S256";
                query["code_challenge"]        = args.ComputeCodeChallenge();
            }
        }