Example #1
0
        public static void SendVerifyCode(string mailAdd)
        {
            var random     = new Random();
            var verifyCode = random.Next(0, 999999).ToString("000000");

            if (_records.ContainsKey(mailAdd))
            {
                _records[mailAdd] = new VerifyRecord
                {
                    VerifyCode   = verifyCode,
                    ValidThrough = DateTime.Now.AddMinutes(5)
                };
            }
            else
            {
                _records.Add(mailAdd, new VerifyRecord
                {
                    VerifyCode   = verifyCode,
                    ValidThrough = DateTime.Now.AddMinutes(5)
                });
            }

            var mailService = new Mail();

            mailService.Send(new MailInfo()
            {
                Receiver = mailAdd,
                Subject  = "红杉书屋平台注册验证",
                Body     = "您的注册验证码是:" + verifyCode + "。5分钟有效。"
            });
        }
Example #2
0
 public long Insert(VerifyRecord model)
 {
     using (var con = WriteConnection())
     {
         return(con.ExecuteScalar <long>("INSERT INTO VerifyRecords(AccountId, Type, Body, CreateTime) VALUES(@AccountId, @Type, @Body , @CreateTime); SELECT SCOPE_IDENTITY()", model));
     }
 }
Example #3
0
        /// <summary>
        /// 生成验证码
        /// </summary>
        /// <param name="mobile">手机号</param>
        /// <param name="type">验证类型</param>
        /// <param name="time">过期时间(分钟)</param>
        /// <returns>JsonResult</returns>
        public JsonResult NewCode(string mobile, int type, int time)
        {
            var verify = General.Verify(mobile + Secret);

            if (!verify.Successful)
            {
                return(verify);
            }

            var record = SmsCodes.OrderByDescending(r => r.CreateTime).FirstOrDefault(r => r.Mobile == mobile && r.Type == type);

            if (record != null && (DateTime.Now - record.CreateTime).TotalSeconds < 60)
            {
                return(verify.TimeTooShort());
            }

            var code = Util.Random.Next(100000, 999999).ToString();

            record = new VerifyRecord
            {
                Type        = type,
                Mobile      = mobile,
                Code        = code,
                FailureTime = DateTime.Now.AddMinutes(time),
                CreateTime  = DateTime.Now
            };
            SmsCodes.Add(record);
            General.LogToLogServer("700501", $"已经为手机号【{mobile}】的用户生成了类型为【{type}】的短信验证码:【{code}】。此验证码将于{record.FailureTime}失效。", "验证服务", "生成短信验证码");
            return(verify.Success(code));
        }
Example #4
0
        public static void SendVerifyCode(string phoneNum)
        {
            var random     = new Random();
            var verifyCode = random.Next(0, 9999).ToString("0000");

            if (_records.ContainsKey(phoneNum))
            {
                _records[phoneNum] = new VerifyRecord
                {
                    VerifyCode   = verifyCode,
                    ValidThrough = DateTime.Now.AddMinutes(5)
                };
            }
            else
            {
                _records.Add(phoneNum, new VerifyRecord
                {
                    VerifyCode   = verifyCode,
                    ValidThrough = DateTime.Now.AddMinutes(5)
                });
            }



            try
            {
                SmsSingleSender ssender = new SmsSingleSender(appid, appkey);

                SmsService.Sms(phoneNum, verifyCode);

                var results = ssender.sendWithParam("86", phoneNum,
                                                    templateId, new[] { verifyCode, "5" }, smsSign, "", "");// 签名参数未提供或者为空时,会使用默认签名发送短信
                Console.WriteLine(results);
            }
            catch (JSONException e)
            {
                Console.WriteLine(e);
            }
            catch (HTTPException e)
            {
                Console.WriteLine(e);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #5
0
        public bool add(VerifyRecord vr)
        {
            bool   isTrue = false;
            string query  = @"
            INSERT INTO [dbo].[VerifyRecords]
                   ([userId]
                   ,[VerifyType]
                   ,[VerifyContent]
                   )
             VALUES
                   (@userId
                   ,@VerifyType
                   ,@VerifyContent
                   )
";

            using (SqlConnection cn = new SqlConnection(WebConfigurationManager.ConnectionStrings["SQLData"].ConnectionString.ToString()))
            {
                cn.Open();
                using (SqlCommand command = new SqlCommand(query, cn))
                {
                    try
                    {
                        command.Parameters.AddWithValue("@userId", vr.userId);
                        command.Parameters.AddWithValue("@VerifyType", vr.VerifyType);
                        command.Parameters.AddWithValue("@VerifyContent", vr.VerifyContent);
                        int _count = (int)command.ExecuteScalar();
                        isTrue = true;
                    }
                    catch (Exception e)
                    {
                        //抓錯誤訊息
                        return(false);
                    }
                    finally
                    {
                    }
                }

                return(isTrue);
            }
        }