/// <summary>
        /// 验证客户端身份
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
        {
            string clientId;
            string clientSecret;

            if (context.TryGetBasicCredentials(out clientId, out clientSecret) == false)
            {
                context.TryGetFormCredentials(out clientId, out clientSecret);
            }


            var loginWay = context.Parameters.Get("loginway");

            if (string.IsNullOrEmpty(loginWay))
            {
                context.SetError("invalid_loginway", "未收到LoginWay.");
                return;
            }

            if (context.ClientId == null)
            {
                context.SetError("invalid_clientId", "未收到ClientId.");
                return;
            }


            var client = await _clientPolicyServices.FindClientAsync(context.ClientId);

            if (client == null)
            {
                context.SetError("invalid_clientId", string.Format("客户端'{0}'未在系统中注册.", context.ClientId));
                return;
            }


            if (client.ClientSecret != TokenHelper.BuildHashToken(clientSecret))
            {
                context.SetError("invalid_client", "客户端密钥无效");
                return;
            }


            if (!client.IsActive)
            {
                context.SetError("invalid_clientId", "客户端未被激活.");
                return;
            }

            context.OwinContext.Set <AppClientRecord>("jytOAuth2:client", client);
            context.OwinContext.Set <string>("AppLoginModel", loginWay);

            context.Validated();
        }