コード例 #1
0
ファイル: ManageController.cs プロジェクト: qyk1987/FYstudent
        /// <summary>
        /// 验证用户输入的图片验证码并给用户发短信验证码
        /// </summary>
        /// <param name="code"></param>
        /// <param name="number"></param>
        /// <returns></returns>

        public async Task <string> VerifyCode(string code, string number)
        {
            if (SessionHelper.GetSession("verifycode") == null || code.ToLower() != SessionHelper.GetSession("verifycode").ToString())
            {
                return("codeerror");
            }
            int userId = 0;

            if (User.Identity.IsAuthenticated)
            {
                userId = User.Identity.GetUserId <int>();
            }


            if (number == null)
            {
                number = await UserManager.GetPhoneNumberAsync(userId);
            }
            else
            {
                var user = await UserManager.FindByPhoneNumberAsync(number);

                if (user != null)
                {
                    return("found");
                }
            }
            try {
                // Generate the token and send it
                var smscode = await UserManager.GenerateChangePhoneNumberTokenAsync(userId, number);

                if (UserManager.SmsService != null)
                {
                    var message = new SmsMessage
                    {
                        Destination = number,
                        Body        = smscode,
                        TemplateId  = 30773
                    };
                    message.setRecord(userId, number);
                    db.SmsRecords.Add(message.Record);
                    await db.SaveChangesAsync();

                    await UserManager.SmsService.SendAsync(message);

                    return("ok");// return smscode;//
                }
                else
                {
                    return("error");
                }
                //发送短信
            }catch (SqlException e) {
                return(e.Message);
            }
        }