Esempio n. 1
0
 public ActionResult SendRetrievePasswordEmail(string emailAccount)
 {
     try
     {
         var       user  = UserDataDapper.FindUser(emailAccount);
         var       token = Tools.GetMD5(EncryptionTools.Crypt(user.UserName + user.Email + DateTime.Now.ToString()));
         EmailInfo email = new EmailInfo();
         email.Body = $"Hi,{user.UserName}. <br>您正在通过注册邮箱找回密码,如果非本人操作,请勿继续."
                      + "<br>请在24小时内点击以下链接重置密码:"
                      + $"<br><a href='https://woyaozufang.live/Account/ModifyPassword?token={token}'>https://woyaozufang.live/Account/ModifyPassword?token={token}</a> "
                      + "<br>如果您以上链接无法点击,您可以将以上链接复制并粘贴到浏览器地址栏打开."
                      + "<br>此信由系统自动发出,系统不接收回信,因此请勿直接回复。" +
                      "<br>如果有其他问题咨询请发邮件到[email protected].";
         email.Receiver     = user.Email;
         email.Subject      = "地图找租房-找回密码";
         email.ReceiverName = user.UserName;
         email.Send();
         UserDataDapper.SaveRetrievePasswordToken(user.ID, token);
         return(Json(new { success = true }));
     }
     catch (Exception ex)
     {
         return(Json(new { success = false, error = ex.ToString() }));
     }
 }
Esempio n. 2
0
        public ActionResult RegisterUser(string userName, string userEmail, string password)
        {
            var checkUser = UserDataDapper.FindUser(userName);

            if (checkUser != null)
            {
                return(Json(new { success = false, error = "用户已存在!" }));
            }
            try
            {
                string    token = Tools.GetMD5(EncryptionTools.Crypt(userName + userEmail));
                EmailInfo email = new EmailInfo();
                email.Body = $"Hi,{userName}. <br>欢迎您注册地图搜租房(woyaozufang.live),你的账号已经注册成功." +
                             "<br/>为了保证您能正常体验网站服务,请点击下面的链接完成邮箱验证以激活账号."
                             + $"<br><a href='https://woyaozufang.live/Account/Activated?activatedCode={token}'>https://woyaozufang.live/Account/Activate?activatedCode={token}</a> "
                             + "<br>如果您以上链接无法点击,您可以将以上链接复制并粘贴到浏览器地址栏打开."
                             + "<br>此信由系统自动发出,系统不接收回信,因此请勿直接回复。" +
                             "<br>如果有其他问题咨询请发邮件到[email protected].";
                email.Receiver     = userEmail;
                email.Subject      = "地图找租房-激活账号";
                email.ReceiverName = userName;
                email.Send();
                var user = new UserInfo();
                user.UserName      = userName;
                user.Password      = password;
                user.Email         = userEmail;
                user.ActivatedCode = token;
                UserDataDapper.InsertUser(user);
                return(Json(new { success = true, message = "注册成功!" }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, error = ex.ToString() }));
            }
        }
Esempio n. 3
0
        public ActionResult Activated(string activatedCode)
        {
            ViewResult result   = new ViewResult();
            var        userInfo = UserDataDapper.FindUserByActivatedCode(activatedCode);

            if (userInfo != null)
            {
                if (userInfo.Status == 1)
                {
                    result.success = true;
                    result.message = "账号已激活。";
                }
                else
                {
                    userInfo.Status = 1;
                    UserDataDapper.SaveUserStatus(userInfo.ID, 1);
                    result.success = true;
                    result.message = "激活账号成功!";
                }
            }
            else
            {
                result.success = true;
                result.error   = "找不到用户,请重新注册.";
            }

            return(View(result));
        }
 public UserHouseController(UserDataDapper userDataDapper,
                            UserHouseDapper userHouseDapper,
                            EncryptionTools encryptionTools)
 {
     this.userDataDapper  = userDataDapper;
     this.encryptionTools = encryptionTools;
     this.userHouseDapper = userHouseDapper;
 }
 public AccountController(UserDataDapper userDataDapper,
                          EmailService emailService,
                          EncryptionTools encryptionTools)
 {
     this.userDataDapper  = userDataDapper;
     this.emailService    = emailService;
     this.encryptionTools = encryptionTools;
 }
Esempio n. 6
0
 public WebController(UserDataDapper userDataDapper,
                      RedisService redisService,
                      QQOAuthClient qqOAuthClient,
                      UserService userService,
                      EncryptionTools encryptionTools)
 {
     _authClient      = qqOAuthClient.GetAPIOAuthClient();
     _userDataDapper  = userDataDapper;
     _userService     = userService;
     _encryptionTools = encryptionTools;
 }
Esempio n. 7
0
        public ActionResult ResetPassword(string token, string password)
        {
            var user = UserDataDapper.FindUserByToken(token);

            if (user != null && (DateTime.Now.ToLocalTime() - user.TokenTime).TotalHours > 24)
            {
                return(Json(new { success = false, error = "Token无效或者重置密码链接已超过24小时,请重新操作." }));
            }
            UserDataDapper.SavePassword(user.ID, Tools.GetMD5(password));
            return(Json(new { success = true }));
        }
Esempio n. 8
0
 public UserController(UserDataDapper userDataDapper,
                       EmailService emailService,
                       EncryptionTools encryptionTools,
                       RedisService redisService,
                       UserService userService)
 {
     this.userDataDapper  = userDataDapper;
     this.emailService    = emailService;
     this.encryptionTools = encryptionTools;
     this.redisService    = redisService;
     this.userService     = userService;
 }
 public AccountController(UserDataDapper userDataDapper,
                          EmailService emailService,
                          EncryptionTools encryptionTools,
                          UserService userService,
                          QQOAuthClient authClient)
 {
     this._userDataDapper  = userDataDapper;
     this._emailService    = emailService;
     this._encryptionTools = encryptionTools;
     this._userService     = userService;
     _authClient           = authClient.GetAPIOAuthClient();
 }
        public AccountController(UserDataDapper userDataDapper,
                                 EmailService emailService,
                                 EncryptionTools encryptionTools,
                                 IOptions <APPConfiguration> configuration
                                 )
        {
            this.userDataDapper  = userDataDapper;
            this.emailService    = emailService;
            this.encryptionTools = encryptionTools;
            this.configuration   = configuration.Value;

            this.authClient = GetOAuthClient();
        }
Esempio n. 11
0
        public ActionResult CheckUserEmail(string email)
        {
            var checkUser = UserDataDapper.FindUser(email);

            if (checkUser != null)
            {
                return(Json(new { success = false, error = "用户已存在!" }));
            }
            else
            {
                return(Json(new { success = true }));
            }
        }
Esempio n. 12
0
 public UserController(UserDataDapper userDataDapper,
                       EmailService emailService,
                       EncryptionTools encryptionTools,
                       IOptions <APPConfiguration> configuration,
                       RedisService redisService,
                       UserService userService)
 {
     this.userDataDapper  = userDataDapper;
     this.emailService    = emailService;
     this.encryptionTools = encryptionTools;
     this.configuration   = configuration.Value;
     this.redisService    = redisService;
     this.userService     = userService;
 }
Esempio n. 13
0
        public ActionResult Login(string userName, string password)
        {
            //var loginUser = new UserInfo(){ Email="*****@*****.**", Password = "******", Status =1};
            var loginUser = UserDataDapper.FindUser(userName);

            if (loginUser != null)
            {
                if (loginUser.Status != 1)
                {
                    return(Json(new { success = false, error = "账号未激活/已被禁用,请点击激活邮件中的URL完成账号激活!" }));
                }

                if (loginUser.Password == Tools.GetMD5(password))
                {
                    var user = new ClaimsPrincipal(new ClaimsIdentity(new[]
                    {
                        new Claim(ClaimTypes.Name, userName),
                        new Claim(ClaimTypes.Email, loginUser.Email),
                        new Claim(ClaimTypes.NameIdentifier, loginUser.ID.ToString())
                    }, CookieAuthenticationDefaults.AuthenticationScheme));
                    HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user,
                                            new AuthenticationProperties
                    {
                        IsPersistent = true,
                        ExpiresUtc   = DateTimeOffset.Now.Add(TimeSpan.FromDays(7)) // 有效时间
                    }).Wait();
                    string token = EncryptionTools.Crypt($"{loginUser.ID}|{loginUser.UserName}");
                    return(Json(new { success = true, token = token, messgae = "登录成功!" }));
                }
                else
                {
                    return(Json(new { success = false, error = "密码错误!" }));
                }
            }
            else
            {
                return(Json(new { success = false, error = "找不到用户信息或密码错误!" }));
            }
        }