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")); } }
/// <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); //管理员行政级别 }
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 })); } }
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 })); } }