Пример #1
0
        public ActionResult GetPassword()
        {
            string mid = CookiesHelp.GetCookieValue("mid");

            if (mid != null)
            {
                string username = Request.QueryString["u"];
                var    user     = _repository._UserRepositories.GetUserByUserName(new Users {
                    UserName = username
                });
                if (user != null)
                {
                    if (user.Mid == mid)
                    {
                        ViewBag.UID = user.UID;
                        return(View());
                    }
                    else
                    {
                        return(Redirect("/404.htm"));
                    }
                }
                else
                {
                    return(Redirect("/404.htm"));
                }
            }
            else
            {
                return(Redirect("/404.htm"));
            }
        }
Пример #2
0
    /// <summary>
    /// 写入cookies
    /// </summary>
    /// <param name="ds"></param>
    private void SetUserCookie(DataTable dt)
    {
        int    _tag   = -24; //负数只保留于内存中
        string roleId = dt.Rows[0]["roleid"].ToString();

        #region 将用户能访问的文件id写入缓存
        DataSet files = common.GetList(" select roleName, pageId from tb_sys_role where id=" + roleId);
        Tools.CacheUtil.InsertCach(Test_BUL.sysParam.CachePageIdDs, (object)files, Test_BUL.sysParam.CachePageIdDsTimes, 2);
        #endregion

        //应该用mode存储的,老代码没改,这里先就这么凑合着看吧
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminId, dt.Rows[0]["id"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain);                          //管理员id
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminCount, dt.Rows[0]["count"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain);                    //管理员账户
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminRoleId, roleId, _tag, Test_BUL.sysParam.CookiesDomain);                                           //管理员角色id
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminRoleName, files.Tables[0].Rows[0]["roleName"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain); //管理员角色名称
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminAdminTag, dt.Rows[0]["adminTag"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain);              //管理员级别标记
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminConState, dt.Rows[0]["AccountState"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain);          //管理员账户状态
        CookiesHelp.SetCookie(Test_BUL.sysParam.adminPowerLeave, dt.Rows[0]["PowerLeave"].ToString(), _tag, Test_BUL.sysParam.CookiesDomain);          //管理员行政级别
    }
Пример #3
0
 public ActionResult GetPassWord(string UID)
 {
     try
     {
         string verifycode = Request["verifycode"];
         var    vc         = System.Web.HttpContext.Current.Session["code"] == null ? "" : System.Web.HttpContext.Current.Session["code"].ToString();
         if (verifycode.ToUpper() == vc.ToUpper())
         {
             Users user = new Users {
                 UID = Convert.ToInt32(UID), Password = Request["newpassword"]
             };
             UserValidation   userValidation   = new UserValidation();
             ValidationResult validationResult = userValidation.Validate(user);
             string           Msg = "";
             if (!validationResult.IsValid)
             {
                 foreach (var failure in validationResult.Errors)
                 {
                     Msg += "Property " + failure.PropertyName + " failed validation. Error was: " + failure.ErrorMessage;
                 }
                 return(Json(new { Result = "Error", Message = Msg }));
             }
             user.Password = Common.Encrypt.MD5Encrypt(Request["newpassword"]);
             _repository._UserRepositories.ChangePassWord(user);
             CookiesHelp.DeleteCookiesObj("mid");
             return(Json(new { Result = "OK" }));
         }
         else
         {
             return(Json(new { Result = "Error", Message = "验证码错误" }));
         }
     }
     catch (Exception ex)
     {
         return(Json(new { Result = "Error", Message = ex.Message }));
     }
 }
Пример #4
0
 public ActionResult HandleForgetPassword()
 {
     try
     {
         string verifycode = Request["verifycode"];
         string email      = Request["email"];
         var    vc         = System.Web.HttpContext.Current.Session["code"] == null ? "" : System.Web.HttpContext.Current.Session["code"].ToString();
         if (verifycode.ToUpper() == vc.ToUpper())
         {
             Users user = new Users {
                 Email = email
             };
             UserValidation   userValidation   = new UserValidation();
             ValidationResult validationResult = userValidation.Validate(user);
             string           Msg = "";
             if (!validationResult.IsValid)
             {
                 foreach (var failure in validationResult.Errors)
                 {
                     Msg += "Property " + failure.PropertyName + " failed validation. Error was: " + failure.ErrorMessage;
                 }
                 return(Json(new { Result = "Error", Message = Msg }));
             }
             var u = _repository._UserRepositories.GetUserByEmail(user);
             if (u != null)
             {
                 DateTime datetime = DateTime.Now;
                 CookiesHelp.SetCookie("mid", u.Mid, 24);
                 StringBuilder sb    = new StringBuilder();
                 string        local = Request.Url.Authority;
                 sb.Append(string.Format(@"<div>此邮件由系统自动发出,请勿直接回复</div><hr/><br/><div><span>亲爱的{0}:</span>
                <div>您已成功发送密码重置请求,请点击此处<a href='http://{1}/Account/GetPassword?u={2}'>{3}/Account/ForgetPassword</a>重置您的帐号密码。</div>
                <br/>
                <hr/>
                <div>此连接24小时内有效,请及时重置您的密码。</div>
                <div>请妥善保存此邮件,以防您的帐号被他人恶意盗取。</div>
                <div>zhuankeshumo博客  {4}</div>", u.UserName, local, u.UserName, local, datetime.ToString()));
                 Task.Factory.StartNew(() =>
                 {
                     Common.SendEmail.SendMails(email, "zhuankeshumo博客注册帐号密码重置", sb.ToString(), () =>
                     {
                         System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Server.MapPath("~/data_log/"));
                         if (!dir.Exists)
                         {
                             dir.Create();
                         }
                         string _savefile          = "~/data_log/HandleForgetPasswordError_" + DateTime.Now.ToString("yyyyMMdd") + ".log";
                         System.IO.StreamWriter sw = new System.IO.StreamWriter(System.Web.HttpContext.Current.Server.MapPath(_savefile), true, System.Text.Encoding.UTF8);
                         sw.WriteLine(sb);
                         sw.Close();
                         sw.Dispose();
                     });
                 });
                 return(Json(new { Result = "OK" }));
             }
             else
             {
                 return(Json(new { Result = "Error", Message = "邮箱不存在" }));;
             }
         }
         else
         {
             return(Json(new { Result = "Error", Message = "验证码错误" }));;
         }
     }
     catch (Exception ex)
     {
         return(Json(new { Result = "Error", Message = ex.Message }));
     }
 }