public JsonResult SubLogin()
        {
            string userName          = Request["input1"];
            string password          = Request["input2"];
            string captchaId         = Request["captchaId"];
            string captchaInstanceId = Request["captchaInstanceId"];
            string captchaUserInput  = Request["captchaUserInput"];

            //数据验证
            if (string.IsNullOrEmpty(userName) ||
                string.IsNullOrEmpty(password))
            {
                return(Json(new { Status = "error", Msg = "data error" }, JsonRequestBehavior.AllowGet));
            }

            //检查验证码
            if (!Captcha.AjaxValidate(captchaId, captchaUserInput, captchaInstanceId))
            {
                return(Json(new { Status = "error", Msg = "验证码错误" }, JsonRequestBehavior.AllowGet));
            }

            //登录校验
            UserBLL userBll = new UserBLL();
            int     userId;

            if (!userBll.CheckUserLogin(userName, password, out userId))
            {
                return(Json(new { Status = "error", Msg = "用户名或者密码错误" }, JsonRequestBehavior.AllowGet));
            }

            //登录成功,保存登录状态
            WebHelper.StoreUserIdInSession(userId);
            return(Json(new { Status = "ok", Msg = "" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SubRegister()
        {
            string userName   = Request["UserName"];
            string password   = Request["passwordOne"];
            string email      = Request["Email"];
            string captchaId  = Request["CaptchaId"];
            string userInput  = Request["UserInput"];
            string instanceId = Request["InstanceId"];

            //检查用户名,密码,邮箱   [email protected]
            Regex regex  = new Regex("^[0-9a-zA-Z._-]+[@][0-9a-zA-Z_-]+([.][a-zA-Z]+){1,2}$");
            bool  result = regex.IsMatch(email);

            if (string.IsNullOrEmpty(userName) ||
                string.IsNullOrEmpty(password) ||
                string.IsNullOrEmpty(email) ||
                !regex.IsMatch(email))
            {
                return(Json(new { Status = "error", Msg = "data error" }, JsonRequestBehavior.AllowGet));
            }
            //检查验证码
            if (!Captcha.AjaxValidate(captchaId, userInput, instanceId))
            {
                return(Json(new { Status = "error", Msg = "验证码错误" }, JsonRequestBehavior.AllowGet));
            }

            UserBLL userBll = new UserBLL();
            //判断用户名是否存在
            bool exist = userBll.IsUserNameExist(userName);

            if (exist)
            {
                return(Json(new { Status = "error", Msg = "用户名已存在" }, JsonRequestBehavior.AllowGet));
            }

            //新增用户,发送激活邮件
            int        userId = userBll.AddUser(userName, password, email);
            string     guid   = Guid.NewGuid().ToString();
            string     url    = string.Format("http://localhost:5555/UserOperation/ActiveUser?id={0}&uid={1}", guid, userId);
            string     body   = string.Format("请点击以下链接进行用户激活:<br/><a href='{0}'>{0}</a>", url);
            EmailModel model  = new EmailModel()
            {
                MailTo  = email,
                Subject = "SharePlat用户激活邮件",
                Body    = body
            };
            string data = JsonConvert.SerializeObject(model);

            RedisHelper.Enqueue("sendActiveEmail", data);          //使用消息队列发送激活邮件
            RedisHelper.Set <string>(guid, userId.ToString(), 10); //设置激活有效期
            return(Json(new { Status = "ok", Msg = "" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SubmitRequireResetPassword()
        {
            /*userName: userName, email: email, captchaCode: captchaCode, captchaId: captchaId, instanceId: instanceId*/
            string userName    = Request["userName"];
            string email       = Request["email"];
            string captchaCode = Request["captchaCode"];
            string captchaId   = Request["captchaId"];
            string instanceId  = Request["instanceId"];

            //数据验证
            Regex regex = new Regex("^[0-9a-zA-Z._-]+[@][0-9a-zA-Z_-]+([.][a-zA-Z]+){1,2}$");

            if (string.IsNullOrEmpty(userName) ||
                string.IsNullOrEmpty(email) ||
                !regex.IsMatch(email))
            {
                return(Json(new { Status = "error", Msg = "data error" }, JsonRequestBehavior.AllowGet));
            }

            //校验验证码
            if (!Captcha.AjaxValidate(captchaId, captchaCode, instanceId))
            {
                return(Json(new { Status = "error", Msg = "验证码错误" }, JsonRequestBehavior.AllowGet));
            }

            //校验数据正确性
            User user = new UserBLL().GetByUserName(userName);

            if (user == null || user.Id <= 0 || user.Email != email)
            {
                return(Json(new { Status = "error", Msg = "用户名与邮箱不匹配" }, JsonRequestBehavior.AllowGet));
            }

            //发送重置密码邮件
            string     guid  = Guid.NewGuid().ToString();
            string     url   = "http://localhost:5555/UserOperation/ResetPassword?id=" + guid;
            string     body  = string.Format("请点击以下链接进行密码重置:<br/><a href='{0}'>{0}</a>", url);
            EmailModel model = new EmailModel()
            {
                MailTo  = email,
                Subject = "SharePlat用户密码重置邮件",
                Body    = body
            };
            string data = JsonConvert.SerializeObject(model);

            RedisHelper.Enqueue("sendResetPwdEmail", data);         //使用Redis消息队列发送密码重置邮件
            RedisHelper.Set <string>(guid, user.Id.ToString(), 20); //设置重置邮件有效期
            return(Json(new { Status = "ok", Msg = "" }, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public JsonResult CheckCaptcha(string captchaId, string instanceId, string userInput)
        {
            bool ajaxValidationResult = Captcha.AjaxValidate(captchaId, userInput, instanceId);

            return(Json(ajaxValidationResult, JsonRequestBehavior.AllowGet));
        }