/// <summary>
        /// Post请求结果
        /// </summary>
        /// <param name="config">授权配置</param>
        /// <param name="builder">授权参数生成器</param>
        /// <param name="type">参数解析器类型</param>
        /// <param name="success">请求成功条件</param>
        /// <returns></returns>
        protected virtual async Task <AuthorizationResult> PostRequestResult(TAuthorizationConfig config,
                                                                             AuthorizationParameterBuilder builder, ParameterParserType type, Func <AuthorizationResult, bool> success)
        {
            var result = new AuthorizationResult(await PostRequest(builder), success, type);

            result.Parameter = builder.ToString();
            result.Message   = GetMessage(result);
            WriteLog(config, builder, result);
            return(result);
        }
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="config">授权配置</param>
        /// <param name="builder">授权参数生成器</param>
        /// <param name="result">授权结果</param>
        protected void WriteLog(TAuthorizationConfig config, AuthorizationParameterBuilder builder,
                                AuthorizationResult result)
        {
            var log = GetLog();

            if (log.IsTraceEnabled == false)
            {
                return;
            }

            log.Class(GetType().FullName)
            .Caption("OAuth授权登录")
            .Content($"授权渠道 : {GetOAuthWay().Description()}")
            .Content("请求参数")
            .Content(builder.ToString())
            .Content()
            .Content("返回结果:")
            .Content(result.GetDictionary())
            .Content("原始响应:")
            .Content(result.Raw)
            .Trace();
        }
 /// <summary>
 /// 处理授权地址
 /// </summary>
 /// <param name="builder">授权参数生成器</param>
 /// <returns></returns>
 protected virtual string HandlerUrl(AuthorizationParameterBuilder builder)
 {
     return(builder.ToString());
 }
 /// <summary>
 /// 发送请求
 /// </summary>
 /// <param name="builder">授权参数生成器</param>
 /// <returns></returns>
 protected virtual async Task <string> Request(AuthorizationParameterBuilder builder)
 {
     return(await Web.Client().Get(builder.ToString()).ResultAsync());
 }