Ejemplo n.º 1
0
        /// <summary>
        /// 是否通过谷歌身份验证
        /// </summary>
        /// <param name="keyNumber">服务端约定的10位数字</param>
        /// <param name="password">用户身份器实时生成的动态密码</param>
        /// <returns></returns>
        public static bool Validate(string keyNumber, string password)
        {
            if (!Regex.IsMatch(keyNumber, @"^\d{10}$", RegexOptions.IgnoreCase))
            {
                throw new ArgumentException("keyNumber must be 10 length");
            }

            return(GoogleTimeBasedOneTimePassword.IsValid(keyNumber, password));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 是否通过谷歌身份验证
        /// </summary>
        /// <param name="randomNumber">服务端约定的10位数字</param>
        /// <param name="password">用户身份器实时生成的动态密码</param>
        /// <returns></returns>
        public static bool Validate(int randomNumber, string password)
        {
            string origNum = randomNumber.ToString();

            if (origNum.Length <= 0)
            {
                throw new ArgumentException("randomNumber must be 10 length");
            }

            if (origNum.Length > 10)
            {
                origNum = origNum.Substring(0, 10);
            }
            else if (origNum.Length < 10)
            {
                origNum = origNum.PadLeft(10, '0');
            }
            else
            {
                //NOTING
            }

            return(GoogleTimeBasedOneTimePassword.IsValid(origNum, password));
        }