public async Task <ResponseViewModel <object> > Forget(ForgetViewModel vm)
        {
            var data = new ResponseViewModel <object>();

            var user = await _userProvider.GetUserInfo(vm.EMP_EMAIL);

            if (user != null)
            {
                //发送找回密码邮件
                var tempHtml = "<p>{0}</p>";
                var body     = string.Empty;
                var url      = _config.Domain + "/account/reset?token=" + MD5Util.TextToMD5(user.EMP_EMAIL);
                var link     = "<a href='" + url + "'>" + url + "</a>";

                body += string.Format(tempHtml, _localizer["forget.body1"]);
                body += string.Format(tempHtml, user.LoginName + _localizer["forget.body2"]);
                body += string.Format(tempHtml, _localizer["forget.body3"] + link);
                body += string.Format(tempHtml, _localizer["forget.body4"]);
                body += string.Format(tempHtml, _localizer["forget.body5"]);

                data.Msg = _localizer["forget.success"];

                var verify = new VerifyEntity
                {
                    UserId = user.ID,
                    Token  = MD5Util.TextToMD5(user.EMP_EMAIL),
                    Status = (int)VerifyStatusEnum.Normal,
                    Type   = (int)VerifyTypeEnum.Password,
                    Time   = DateTime.Now
                };
                await _verifyProvider.AddVerify(verify);

                try
                {
                    _email.SendEmail(user.LoginName, user.EMP_EMAIL, _localizer["forget.subject"], body);
                }
                catch (Exception e)
                {
                    data.Code = 1;
                    data.Msg  = e.Message;
                }
            }
            else
            {
                data.Code = 1;
                data.Msg  = _localizer["forget.inexistent"];
            }

            return(data);
        }
        public async Task <string> CreateCodeAsync(string userId)
        {
            if (!ObjectId.TryParse(userId, out ObjectId id))
            {
                return(string.Empty);
            }

            var ret = new VerifyEntity()
            {
                UserId  = id,
                Expired = DateTime.UtcNow.AddDays(1)
            };

            await _context.VerifyEntityCollection.InsertOneAsync(ret);

            return(ret.VerifyCode.ToString());
        }
예제 #3
0
 public VerifyEntity Add(long userId)
 {
     using (InShareContext db = new InShareContext())
     {
         BaseService <VerifyEntity> baseService = new BaseService <VerifyEntity>(db);
         var entity = baseService.GetAll().FirstOrDefault(v => v.UserId == userId && v.IsValid);
         if (entity == null)
         {
             entity = new VerifyEntity
             {
                 UserId     = userId,
                 IsValid    = true,
                 VerifyCode = Guid.NewGuid().ToString("N"),
             };
             db.Verifys.Add(entity);
             db.SaveChanges();
         }
         return(entity);
     }
 }
예제 #4
0
        /// <summary>
        /// 添加验证信息
        /// </summary>
        /// <param name="verify"></param>
        /// <returns></returns>
        public async Task <bool> AddVerify(VerifyEntity verify)
        {
            await _content.Verifies.AddAsync(verify);

            return(await _content.SaveChangesAsync() > 0);
        }
 /// <summary>
 /// 添加验证信息
 /// </summary>
 /// <param name="verify"></param>
 /// <returns></returns>
 public Task <bool> AddVerify(VerifyEntity verify)
 {
     return(_data.AddVerify(verify));
 }