コード例 #1
0
        public void TestUserLogin()
        {
            var token = UserLoginBll.GetInstance().GetUserToken(new SignInParam()
            {
                phone    = "+86 18408252063",
                password = ""
            });

            LogUtils.Debug(token);
            var userInfo = UserLoginBll.GetInstance().GetUserInfo("+86 18408252063");

            LogUtils.Debug(userInfo);

            //var temp = UserLoginBll.GetInstance().GetCaptchaImageToken();
            //LogUtils.Debug(temp);
        }
コード例 #2
0
        /// <summary>
        /// 用户名密码登录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void onPswLogin(object sender, EventArgs e)
        {
            Dispatcher.BeginInvoke(new Action(() => {
                WarnInfo.Content = "";
            }));

            BaseSinglePostData <UserToken> bdUserToken = GetUserToken(out string warningString, out BitmapImage bi);

            HttpHelper.GetInstance().ResultCheck(bdUserToken, out bool isSuccess);

            if (!isSuccess)
            {
                Dispatcher.BeginInvoke(new Action(() => {
                    WarnInfo.Content = warningString;
                    if (bi != null)
                    {
                        lbInputAuth.Visibility = Visibility.Visible;
                        tbInputAuth.Visibility = Visibility.Visible;
                        imageAuth.Visibility   = Visibility.Visible;
                        imageAuth.Source       = bi;
                    }
                }));
                return;
            }

            SetTokens(bdUserToken.body.access_token, bdUserToken.body.refresh_token);

            LoadingDataEvent(this, true);
            BaseData <User> bdUser = UserLoginBll.GetInstance().GetUserInfo(("+86 " + tbInputName.Text));

            LoadingDataEvent(this, false);
            HttpHelper.GetInstance().ResultCheck(bdUser, out bool isSuccess2);

            if (!isSuccess2)
            {
                WarnInfo.Content = "获取用户信息失败!";
            }
            else
            {
                UserPwDLoginEvent(this, bdUser.body.objects[0]);
            }
        }
コード例 #3
0
        private BaseSinglePostData <UserToken> GetUserToken(out string warningString, out BitmapImage bi)
        {
            BaseSinglePostData <UserToken> bdUserToken = new BaseSinglePostData <UserToken>();

            if (tbInputName.Text == "" || tbInputPsw.Password.ToString() == "")
            {
                //Dispatcher.BeginInvoke(new Action(() => {
                if (tbInputName.Text == "")
                {
                    warningString = "请输入用户名!";
                }
                else
                {
                    warningString = "请输入密码!";
                }
                //}));
                bi = null;
                HttpHelper.GetInstance().ResultCheck(bdUserToken, out bool isSuccess);
                return(bdUserToken);
            }

            SignInParam siParam = new SignInParam();

            if (tbInputAuth.Visibility == Visibility.Visible)
            {
                siParam.captcha_token = CaptchaToken;
                siParam.captcha_value = tbInputAuth.Text;
            }
            siParam.password = tbInputPsw.Password.ToString();
            siParam.phone    = "+86 " + tbInputName.Text;
            siParam.source   = "app";

            //获取用户Token
            LoadingDataEvent(this, true);
            bdUserToken = UserLoginBll.GetInstance().GetUserToken(siParam);
            LoadingDataEvent(this, false);
            //获得用户Token后,返回true, 进入绑定指静脉或者用户名密码登录的下一步
            HttpHelper.GetInstance().ResultCheck(bdUserToken, out bool isSuccess1);
            if (isSuccess1)
            {
                warningString = "";
                bi            = null;
                return(bdUserToken);
            }


            //获得用户Token失败,首先获取图形验证的Toke
            LoadingDataEvent(this, true);
            var bdCaptchaToken = UserLoginBll.GetInstance().GetCaptchaImageToken();

            LoadingDataEvent(this, false);
            HttpHelper.GetInstance().ResultCheck(bdCaptchaToken, out bool isSuccess2);
            if (!isSuccess2)
            {
                //Dispatcher.BeginInvoke(new Action(() => {
                warningString = "获取验证码Token失败,请重试!";
                //}));
                bi = null;
                bdUserToken.code    = bdCaptchaToken.code;
                bdUserToken.message = bdCaptchaToken.message;
                return(bdUserToken);
            }

            //赋值给全局变量,下一次使用
            CaptchaToken = bdCaptchaToken.body.captcha_token;

            // 联网异步获取验证码图片
            LoadingDataEvent(this, true);
            //Task<System.Drawing.Image> result = ImageUtils.GetBitmapFromWebServerAsync(url);
            System.Drawing.Image image = ImageUtils.GetBitmapFromWebServer(HttpHelper.GetCaptchaImageUrl() + "?captcha_token=" + bdCaptchaToken.body.captcha_token);
            LoadingDataEvent(this, false);

            //转型:Image --> Bitmap --> BitmapImage
            Bitmap bitmap = new Bitmap(image);

            //BitmapImage bitmapImage = ImageUtils.BitmapToBitmapImage(bitmap);
            bi = ImageUtils.BitmapToBitmapImage(bitmap);

            //Dispatcher.BeginInvoke(new Action(() => {
            //lbInputAuth.Visibility = Visibility.Visible;
            //tbInputAuth.Visibility = Visibility.Visible;
            //imageAuth.Visibility = Visibility.Visible;

            //imageAuth.Source = bitmapImage;
            warningString = "获取账号信息失败,请输入用户信息、密码和验证码,重新尝试!";
            //}));
            bdUserToken.code    = (int)ResultCode.Result_Exception;
            bdUserToken.message = ResultCode.Result_Exception.ToString();
            return(bdUserToken);
        }