tzy
2021-05-25 65bcedda4d8e3ff6500dbf59a4e607d96e469375
HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
@@ -30,6 +30,12 @@
                return m_Current;
            }
        }
        /// <summary>
        /// 验证认证的次数
        /// </summary>
        private int checkSecurityCount = 3;
        #endregion
        #region ■ 验证解锁认证_______________________
@@ -38,9 +44,9 @@
        /// 验证解锁认证
        /// </summary>
        /// <param name="addTopFrame">验证界面是否添加头部Frame(只对手势密码和数字密码有效)</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调(0:没有设置有验证 1:验证成功)</param>
        /// <param name="loadPageBeforEvent">加载指定解锁认证界面之前的事件,0:取消当前验证并切换到其他方式,1:数字密码,2:手势密码,3:指纹密码,4:面容ID</param>
        public void CheckUnlockSecurity(bool addTopFrame, Action successEvent, Action<string> loadPageBeforEvent = null)
        public void CheckUnlockSecurity(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
        {
            //验证指纹和面容id都使用指纹验证
            if (UserInfo.Current.appUnlockType.Contains("3") || UserInfo.Current.appUnlockType.Contains("4"))
@@ -59,8 +65,11 @@
                    {
                        if (e2 == TouchIDUtils.TouchIDState.Success)
                        {
                            //次数还原
                            this.checkSecurityCount = 3;
                            //TouchID验证成功
                            successEvent?.Invoke();
                            successEvent?.Invoke(1);
                            successEvent = null;
                            loadPageBeforEvent = null;
                            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
@@ -97,9 +106,9 @@
        /// 使用密码或者手势密码解锁认证
        /// </summary>
        /// <param name="addTopFrame">验证界面是否添加头部Frame(只对手势密码和数字密码有效)</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调(0:没有设置有验证 1:验证成功)</param>
        /// <param name="loadPageBeforEvent">加载指定解锁认证界面之前的事件,1:数字密码,2:手势密码,3:指纹密码,4:面容ID</param>
        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action successEvent, Action<string> loadPageBeforEvent = null)
        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
        {
            if (UserInfo.Current.appUnlockType.Contains("1"))
            {
@@ -117,14 +126,20 @@
                //显示手势密码解锁认证界面
                this.ShowAppGestureSecurityForm(addTopFrame, successEvent);
            }
            else
            {
                //没有设置有验证
                successEvent?.Invoke(0);
                successEvent = null;
            }
        }
        /// <summary>
        /// 显示数字密码解锁认证界面
        /// </summary>
        /// <param name="addTopFrame">验证界面是否添加头部Frame(只对手势密码和数字密码有效)</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调</param>
        private void ShowAppNumPasswordSecurityForm(bool addTopFrame, Action successEvent)
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调(0:没有设置有验证 1:验证成功)</param>
        private void ShowAppNumPasswordSecurityForm(bool addTopFrame, Action<int> successEvent)
        {
            var form = new AppNumPasswordSecurityForm();
            form.AddForm(addTopFrame, Language.StringByID(StringId.PlsEntryPassword), string.Empty);
@@ -136,13 +151,26 @@
                    //密码正确
                    if (UserInfo.Current.appUnlockPasswrod == password)
                    {
                        //次数还原
                        this.checkSecurityCount = 3;
                        form.CloseForm();
                        //回调
                        successEvent?.Invoke();
                        successEvent?.Invoke(1);
                        successEvent = null;
                    }
                    else
                    {
                        this.checkSecurityCount--;
                        if (this.checkSecurityCount == 0)
                        {
                            //管理员身份验证失败,请重新登录
                            HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.CheckAdminFailAndLoginAgain));
                            HDLCommon.Current.Logout();
                            this.checkSecurityCount = 3;
                            return;
                        }
                        //验证失败,密码错误.
                        form.ShowErrorMsg(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                    }
@@ -154,8 +182,8 @@
        /// 显示手势密码解锁认证界面
        /// </summary>
        /// <param name="addTopFrame">验证界面是否添加头部Frame(只对手势密码和数字密码有效)</param>
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调</param>
        private void ShowAppGestureSecurityForm(bool addTopFrame, Action successEvent)
        /// <param name="successEvent">验证成功之后的回调函数,失败不会回调(0:没有设置有验证 1:验证成功)</param>
        private void ShowAppGestureSecurityForm(bool addTopFrame, Action<int> successEvent)
        {
            var form = new AppGestureSecurityForm();
            form.AddForm(addTopFrame, Language.StringByID(StringId.VerifyGesturePassword), string.Empty);
@@ -168,13 +196,27 @@
                    //密码正确
                    if (UserInfo.Current.appUnlockPasswrod == password)
                    {
                        //次数还原
                        this.checkSecurityCount = 3;
                        form.CloseForm();
                        //回调
                        successEvent?.Invoke();
                        successEvent?.Invoke(1);
                        successEvent = null;
                    }
                    else
                    {
                        this.checkSecurityCount--;
                        if (this.checkSecurityCount == 0)
                        {
                            //管理员身份验证失败,请重新登录
                            HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.CheckAdminFailAndLoginAgain));
                            HDLCommon.Current.Logout();
                            this.checkSecurityCount = 3;
                            return;
                        }
                        //验证失败,密码错误.
                        form.ShowErrorMsg(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                    }