Example #1
0
        /// <summary>
        /// 设置验证码到缓存中
        /// </summary>
        public virtual async Task <string> SetCodeAsync(string code)
        {
            var id    = Guid.NewGuid().ToString("N");
            var entry = CacheEntryCollection.GetVerifyCodeEntry(id, _options.VerfiyCodeExpire);
            await _store.SetAsync(entry, code);

            return(id);
        }
Example #2
0
        /// <summary>
        /// 校验验证码有效性
        /// </summary>
        /// <param name="code">要校验的验证码</param>
        /// <param name="id">验证码编号</param>
        /// <param name="removeIfSuccess">验证成功时是否移除</param>
        /// <returns></returns>
        public virtual async Task <bool> CheckCodeAsync(string id, string code, bool removeIfSuccess = true)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(false);
            }

            var  entry     = CacheEntryCollection.GetVerifyCodeEntry(id);
            var  validCode = _store.Get <string>(entry);
            bool flag      = code.Equals(validCode, StringComparison.InvariantCultureIgnoreCase);

            if (removeIfSuccess && flag)
            {
                await _store.RemoveAsync(entry.Key);
            }

            return(flag);
        }