protected override bool DoPasswordCheck(string userName, string oldPassword, string newPassword)
        {
            if (!rootPasswordChecker.IsPasswordOk(userName, oldPassword, newPassword))
            {
                // 长度检查失败 或者太简单, 直接返回.
                this.ErrorMessage = rootPasswordChecker.ErrorMessage;
                return(false);
            }

            // 检查通过次数.
            int checkPassTimes = 0;

            foreach (PasswordChecker checker in checkerArray)
            {
                if (checker.IsPasswordOk(userName, oldPassword, newPassword))
                {
                    checkPassTimes++;
                }
            }

            if (checkPassTimes < 3)
            {
                this.ErrorMessage = @"密码必须要包含以下四类字符中的三类字符:
英文大写字母(A 到 Z)
英文小写字母(a 到 z)
10 个基本数字(0 到 9)
非字母字符(例如 !、$、#、%)";
                return(false);
            }


            // 检查通过
            return(true);
        }