Exemple #1
0
        public bool LoginSubmit(user_info user)
        {
            user.password = EncryptSugar.GetInstance().MD5(user.password);
            var isLogin = us.Login(user.user_name, user.password);

            return(isLogin);
        }
        public JsonResult ActivateMailSubmit(string key, string userId, string mail)
        {
            Check.Exception(mail.IsEamil().IsFalse(), "参数不合法");
            var model = new ResultModel <string>();

            _service.Command <HomeOutsourcing>((db, o) =>
            {
                var userIdInt = EncryptSugar.GetInstance().Decrypto(key).ObjToInt();
                var date      = EncryptSugar.GetInstance().Decrypto(userId).ObjToDate();
                var isAny     = db.Queryable <UserInfo>().Any(it => userIdInt == it.Id);
                var isOkDate  = ((DateTime.Now - date).TotalDays <= 3);
                if (isAny && isOkDate)
                {
                    model.ResultInfo = "激活成功,请刷新你的页面!";
                    model.IsSuccess  = true;
                    mail             = mail.ToLower();
                    db.Update <UserInfo>(new { Email = mail }, it => it.Id == userIdInt);
                    UpdateMailCache(userIdInt, mail);
                }
                else
                {
                    model.ResultInfo = "激活失败,请重新发送邮箱验证或者联系管理员 [email protected] 。";
                }
            });
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
        public JsonResult ActivateMailSend(string key, string userId, string mail)   //命名反的误导黑客
        {
            Check.Exception(mail.IsEamil().IsFalse(), "参数不合法");
            var userIdInt = EncryptSugar.GetInstance().Decrypto(key).ObjToInt();
            var date      = EncryptSugar.GetInstance().Decrypto(userId).ObjToDate();
            var model     = new ResultModel <string>();

            if (base.IsLogin == false)
            {
                model.ResultInfo = "登录超时请刷新页面重新登录";
                return(Json(model, JsonRequestBehavior.AllowGet));
            }
            var cm = CacheManager <DateTime> .GetInstance();

            string mailTimeKey = PubConst.SessionMailTime + key.ToLower();

            if (cm.ContainsKey(mailTimeKey))
            {
                var mins = (DateTime.Now - cm[mailTimeKey]).TotalSeconds;
                if (mins < 60)
                {
                    model.ResultInfo = "您刚才已经发送成功,如果还没有收到邮件,请等待{0}秒后重新发送。".ToFormat(Convert.ToUInt32(60 - mins));
                    return(Json(model, JsonRequestBehavior.AllowGet));
                }
            }
            _service.Command <HomeOutsourcing>((db, o) =>
            {
                var isAnyUser = db.Queryable <UserInfo>().Any(it => userIdInt == it.Id);
                var isOkDate  = ((DateTime.Now - date).TotalDays <= 3);
                var isAnyMail = db.Queryable <UserInfo>().Any(it => mail.ToLower() == it.Email);
                if (isAnyUser && isOkDate && isAnyMail.IsFalse())
                {
                    var html          = FileSugar.FileToString(FileSugar.GetMapPath("~/Template/mail/Validate.html")).Replace('\r', ' ').Replace('\n', ' ');
                    string userName   = _userInfo.NickName;
                    string aHtml      = "<a href=\"{0}\">{1}</a>".ToFormat(RequestInfo.HttpDomain + "" + Url.Action("ActivateMailSubmitSuccess", "UserCenter", new { key = key, userId = userId, mail }), "请点击这儿完成激活");
                    string dateString = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    MailSmtp ms       = new MailSmtp(PubGet.GetEmailSmtp, PubGet.GetEmailUserName, PubGet.GetEmailPassword);
                    html = html.ToFormat(userName, aHtml, dateString);
                    ms.Send(PubGet.GetEmailUserName, PubConst.SiteMailUserName, mail, userName + "邮箱激活通知", html);
                    model.ResultInfo = "发送成功,请打开邮箱完成激活!";
                    string uniqueKey = PubGet.GetUserKey;
                    base.AddUpdateMailCache(uniqueKey);
                    model.IsSuccess = true;
                    Check.Exception(ms.Result.IsValuable(), "邮件激活失败!" + ms.Result);
                    cm.Add(mailTimeKey, DateTime.Now, cm.Minutes);
                }
                else if (isAnyMail)
                {
                    model.ResultInfo = "发送失败,该邮箱已经被激活,或已经存在。";
                }
                else
                {
                    model.ResultInfo = "发送失败";
                }
            });
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Exemple #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var es = EncryptSugar.GetInstance();

            es.SetMaxCacheNum(0);
            string word         = "abc";
            var    wordEncrypt  = es.Encrypto(word);
            var    wordEncrypt2 = es.Encrypto("22");
            var    wordDecrypt  = es.Decrypto(wordEncrypt);
            var    wordMd5      = es.MD5(word);
        }
        public ActionResult ActivateMail()
        {
            if (base.IsLogin == false)
            {
                return(this.Redirect("~/Ask"));
            }
            UserMailResult model = new UserMailResult();

            model.UserInfo = _userInfo;
            model.UserCode = EncryptSugar.GetInstance().Encrypto(model.UserInfo.Id.ToString());
            string dateStr = DateTime.Now.ToString("yyyy-MM-dd");

            model.Now = EncryptSugar.GetInstance().Encrypto(dateStr);
            return(View(model));
        }
Exemple #6
0
        public ActionResult CallBack(string state)
        {
            var current = OAuth2Factory.Current;

            if (current.openID.IsNullOrEmpty())
            {
                return(Content("第三方登录失败!"));
            }
            _service.Command <OauthOutsourcing>((db, o) =>
            {
                var pwd = new EncryptSugar().MD5(RandomSugar.GetRandomString(10));
                try
                {
                    var userMapping = db.Queryable <UserOAuthMapping>().SingleOrDefault(it => it.AppId == current.openID);
                    if (userMapping == null)//注册
                    {
                        db.BeginTran();
                        UserInfo u          = o.GetUser(current, pwd);
                        var id              = db.Insert(u).ObjToInt();
                        UserOAuthMapping um = o.GetUserOauthMapping(current, id);
                        db.Insert(um);
                        db.CommitTran();
                        userMapping = um;
                        RemoveNewUserListCache();
                    }
                    var user = db.Queryable <UserInfo>().InSingle(userMapping.UserId);
                    o.SaveAvatar(db, user);
                    var cm           = CacheManager <UserInfo> .GetInstance();
                    string uniqueKey = PubGet.GetUserKey;
                    cm.Add(uniqueKey, user, cm.Day * 365);//保存一年
                    LoginHistory lh = new LoginHistory()
                    {
                        CreateDate = DateTime.Now,
                        IsDeleted  = false,
                        Uid        = user.Id,
                        UniqueKey  = uniqueKey
                    };
                    db.Insert(lh);
                }
                catch (Exception ex)
                {
                    PubMethod.WirteExp(ex);
                    db.RollbackTran();
                    throw new Exception("第三方登录注册失败!" + ex.Message);
                }
            });
            return(this.Redirect("~/ask"));
        }
Exemple #7
0
        public JsonResult Submit(string userName, string password, string code)
        {
            var model = new ResultModel <string>();

            _service.Command <LoginOutsourcing>((db, o) =>
            {
                var sm        = SessionManager <string> .GetInstance();
                var severCode = sm[PubConst.SessionVerifyCode];
                if (severCode == code)
                {
                    password        = new EncryptSugar().MD5(password);
                    int adminRoleId = (int)PubEnum.RoleType.Admin;
                    var userInfo    = db.Queryable <UserInfo>()
                                      .Where(it => it.RoleId == adminRoleId)//只有管理员才可以登录
                                      .FirstOrDefault(it => it.UserName == userName && it.Password == password);
                    var isLogin  = userInfo != null;
                    model.Status = isLogin ? "1" : "3";
                    if (model.Status == "3")
                    {
                        model.ResultInfo = "用户名密码不正确!";
                    }
                    else
                    {
                        model.ResultInfo = Url.Content("/") + PubConst.UrlAdminIndex;
                        var cm           = CacheManager <UserInfo> .GetInstance();
                        string uniqueKey = PubGet.GetUserKey;
                        cm.Add(uniqueKey, userInfo, cm.Day * 365);//保存一年
                    }
                }
                else
                {
                    model.Status     = "2";
                    model.ResultInfo = "验证码不正确!";
                }
            });
            return(Json(model));
        }