protected void Button1_Click(object sender, EventArgs e) { var loginFrom = ConfigurationManager.AppSettings["loginFrom"]; var token = BaseEncode.GetMd5Str(TextBox1.Text.Trim() + DateTime.Now.ToString("yyyyMMdd") + loginFrom); Response.Redirect(string.Format("/Login/SSO?token={0}&loginid={1}", token, TextBox1.Text.Trim())); }
public JsonResult UpdateUserPwd(int id) { try { Sys_User model = userBL.Get(id); model.Password = BaseEncode.GetMd5Str("123456"); userBL.Update(model); return(Json(1, JsonRequestBehavior.AllowGet)); } catch { return(Json(0, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 记住密码 /// </summary> /// <param name="username"></param> /// <param name="password"></param> private void RememberPwd(string username, string password) { if (Request.Form["rememberPwd"] == "1") { var newCookie = new HttpCookie("LiXin_User"); newCookie.Values["username"] = HttpUtility.UrlEncode(username); newCookie.Values["password"] = BaseEncode.EncodingForString(password); //加密后的密码放到COOKIE内 newCookie.Expires = DateTime.Now.AddDays(15); Response.AppendCookie(newCookie); } else { HttpCookie cookie = Request.Cookies["LiXin_User"]; if (cookie != null) { cookie.Expires = DateTime.Now.AddDays(-2); Response.Cookies.Set(cookie); } } }
/// <summary> /// 单点登录 /// </summary> /// <param name="loginid">用户名</param> /// <param name="token">用户名+当天时间(yyyyMMdd)+systemid 经过MD5加密</param> public void SSO(string loginid, string token) { string loginFrom = ConfigurationManager.AppSettings["loginFrom"]; string loginFailUrl = ConfigurationManager.AppSettings["loginFailUrl"]; try { var test = BaseEncode.GetMd5Str(loginid + DateTime.Now.ToString("yyyyMMdd") + loginFrom); if (token.ToLower() == test.ToLower()) { Sys_User user = userBL.GetUserByLoginId(loginid); if (user != null) { //记录最后一次登录时间 user.LastLoginTime = DateTime.Now; user.PasswordFailureCount = 0; user.PasswordFailureTime = null; userBL.Update(user); //初始化用户权限 UserRights = rightBL.GetRightByUserId(user.UserId); CurrentUser = user; FormsAuthentication.SetAuthCookie(user.Username, true); LoginLog("用户登录", CurrentUser.UserId, HttpContext); Response.Redirect("/Home/Index", true); } else { Response.Redirect(loginFailUrl, true); } } else { Response.Redirect(loginFailUrl, true); } } catch { Response.Redirect(loginFailUrl, true); } }
/// <summary> /// Login /// </summary> /// <returns></returns> public ActionResult Index() { Session.Clear(); string backUrl = ""; if (Session["backUrl"] != null) { backUrl = Session["backUrl"].ToString(); } if (!string.IsNullOrEmpty(Request.QueryString["backUrl"])) { backUrl = Request.QueryString["backUrl"]; } ViewBag.backUrl = backUrl; #region verification code string loginRequireValCode = LoginConfig.LoginConfigurations.IsShowLoginVaildateCode ? "true" : "false"; ViewBag.loginReqVCode = loginRequireValCode; #endregion #region remember password ViewBag.userName = ""; ViewBag.password = ""; ViewBag.remember = 0; HttpCookie httpCookie = Request.Cookies["LiXin_User"]; if (httpCookie != null) { ViewBag.remember = 1; ViewBag.userName = HttpUtility.UrlDecode(httpCookie["username"]); ViewBag.password = BaseEncode.DecodingForString(httpCookie["password"]); } #endregion return(View()); }
/// <summary> /// 获取用户excel表中的数据 /// </summary> /// <param name="excelPath">Excel路径</param> /// <param name="errorStr">错误信息</param> /// <returns>返回User数据列表</returns> private List <Sys_User> GetExcelUserContent(string excelPath, ref string userTempID, ref string userReId, ref string errorStr, ref bool type, ref string userNumberId) { var listUser = new List <Sys_User>(); var err = ""; try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelPath + ";Extended Properties=Excel 8.0;"; var tmpcn = new OleDbConnection(strConn); tmpcn.Open(); //打开文件,读取里面的内容 int flag = 0; try { //打开文件,读取里面的工作表 DataTable dt = tmpcn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); foreach (DataRow drr in dt.Rows) { string strExcelTableName = drr["TABLE_NAME"].ToString(); //EXCEL中的工作表名 if (strExcelTableName == "模板$") { flag = 1; var tmpda = new OleDbDataAdapter("select * from [" + strExcelTableName + "]", tmpcn); var ds = new DataSet(); tmpda.Fill(ds); bool formworkflag = true; #region 判断Excel是否正确 if (ds.Tables[0].Columns.Count == 13) { if (!ds.Tables[0].Columns[0].ToString().Contains("工号")) { formworkflag = false; } if (!ds.Tables[0].Columns[1].ToString().Contains("中文名")) { formworkflag = false; } if (!ds.Tables[0].Columns[2].ToString().Contains("性别")) { formworkflag = false; } if (!ds.Tables[0].Columns[3].ToString().Contains("出生日期")) { formworkflag = false; } if (!ds.Tables[0].Columns[4].ToString().Contains("电子邮件")) { formworkflag = false; } if (!ds.Tables[0].Columns[5].ToString().Contains("电话")) { formworkflag = false; } if (!ds.Tables[0].Columns[6].ToString().Contains("传真")) { formworkflag = false; } if (!ds.Tables[0].Columns[7].ToString().Contains("职称")) { formworkflag = false; } if (!ds.Tables[0].Columns[8].ToString().Contains("加入公司日期")) { formworkflag = false; } if (!ds.Tables[0].Columns[9].ToString().Contains("部门代码")) { formworkflag = false; } if (!ds.Tables[0].Columns[10].ToString().Contains("职务代码")) { formworkflag = false; } if (!ds.Tables[0].Columns[11].ToString().Contains("英文名")) { formworkflag = false; } if (!ds.Tables[0].Columns[12].ToString().Contains("状态")) { formworkflag = false; } } else { formworkflag = false; } #endregion if (formworkflag) { //Excel正确 int i = 1; var strUser = new List <string>(); foreach (DataRow dr in ds.Tables[0].Rows) { if (!(string.IsNullOrWhiteSpace(dr[0].ToString()) || string.IsNullOrWhiteSpace(dr[1].ToString()) || string.IsNullOrWhiteSpace(dr[12].ToString()))) { if (Regex.IsMatch(dr[0].ToString(), "^[a-zA-Z0-9_]{6,20}$")) { var result = VerifyUser(dr[0].ToString(), dr[4].ToString()); if (result == 0) { if (!strUser.Contains(dr[0].ToString())) { var model = new Sys_User(); model.JobNum = dr[0].ToString(); model.Username = model.JobNum; model.Password = BaseEncode.GetMd5Str("123456"); model.Realname = dr[1].ToString(); model.Sex = 0; if (dr[2].ToString() == "女") { model.Sex = 1; } model.Email = dr[4].ToString(); model.Telephone = dr[5].ToString(); model.JobTitle = dr[7].ToString(); if (!string.IsNullOrWhiteSpace(dr[8].ToString())) { model.JoinDate = dr[8].StringToDate(2); } model.DeptCode = dr[9].ToString(); model.PostCode = dr[10].ToString(); if (string.IsNullOrWhiteSpace(dr[11].ToString())) { model.Ename = model.Realname; } else { model.Ename = dr[11].ToString(); } model.Status = 0; if (dr[12].ToString().ToUpper() == "冻结") { model.Status = 1; } listUser.Add(model); strUser.Add(model.Username); } else { if (userReId != "") { userReId = userReId + "," + dr[0]; } else { userReId = dr[0].ToString(); } } } else { if (err != "") { err = err + "," + i; } else { err = i.ToString(); } } } else { if (userNumberId != "") { userNumberId = userNumberId + "," + dr[0]; } else { userNumberId = dr[0].ToString(); } } } else { if (userTempID != "") { userTempID = userTempID + "," + i; } else { userTempID = i.ToString(); } } i++; } } else { errorStr = errorStr + "<br /> 用户Excel不正确,请联系管理员以便获得帮助!"; type = false; break; } } } } catch (Exception ex) { errorStr = errorStr + "<br />" + ex.Message; type = false; } finally { tmpcn.Close(); } if (flag == 0) { errorStr = errorStr + "<br />用户Excel不正确,请联系管理员以便获得帮助!"; type = false; } } catch (Exception e) { errorStr = errorStr + "<br />" + e.Message; type = false; } if (type && (!string.IsNullOrWhiteSpace(err))) { errorStr = errorStr + "<br /> Excel中第 " + err + " 条数据,工号、邮箱存在异常,没有添加成功!"; } return(listUser); }
public JsonResult SaveUser(int userId, string jobNum, string realName, string email, int sex, int deptId, string deptName, int postId, string postName) { try { if (userBL.Exists(jobNum.ReplaceSingleSql(), jobNum.ReplaceSingleSql(), userId)) { return(Json(new { result = 0, content = "工号重复!" }, JsonRequestBehavior.AllowGet)); } var model = new Sys_User(); if (userId != 0) { model = userBL.Get(userId); } model.JobNum = jobNum; model.Username = jobNum; model.Password = BaseEncode.GetMd5Str("123456"); model.Realname = realName; model.Ename = realName; model.Email = email; model.Sex = sex; model.PostId = -1; model.DeptId = -1; var postTemp = AllPosts.Find(p => p.PostId == postId); if (postTemp != null) { model.PostId = postId; model.PostCode = postTemp.PostCode; model.PostName = postTemp.PostName; //model.PostLevel = postTemp.PostLevel; } var deptTemp = AllDepartments.Find(p => p.DepartmentId == deptId); if (deptTemp != null) { model.DeptId = deptId; model.DeptCode = deptTemp.DeptCode; model.DeptName = deptTemp.DeptName; } if (userId == 0) { userBL.Add(model); } else { userBL.Update(model); } return(Json(new { result = 1, content = "保存成功!" }, JsonRequestBehavior.AllowGet)); } catch { return(Json(new { result = 0, content = "保存失败!" }, JsonRequestBehavior.AllowGet)); } }
private JsonResult CheckLogin(string username, string password, string code, string backUrl, int rememberPwd) { try { #region 登录验证 #region 判断超级管理员 if (username.Equals(LoginConfig.LoginConfigurations.SuperAdmin, StringComparison.OrdinalIgnoreCase)) { if (password.Encrypt().Equals(LoginConfig.LoginConfigurations.SuperPassword)) { InitSuperAdmin(); LoginLog("超级管理员用户登录", 0, HttpContext); return(Json(new { result = 0, url = backUrl }, JsonRequestBehavior.DenyGet)); } } #endregion #region 判断用户名与密码是否匹配 Sys_User user = userBL.GetUserByName(username); if (user == null) { return(LoginJson(2, LoginLanguage.Login_CheckUserName)); } if (user.IsDelete == 1) { return(LoginJson(2, LoginLanguage.Login_NotFindUserName)); } if (!user.Password.Equals(BaseEncode.GetMd5Str(password))) { return(CheckPwdCount(user)); } #endregion #region 判断用户的状态是否正常 //异常状况,需要判断锁定时间 if (user.Status == 1) { if (!user.FreezeTime.HasValue || user.FreezeTime > DateTime.Now) { return(LoginJson(5, LoginLanguage.Login_FreezeAccount)); } if (user.FreezeTime.HasValue && user.FreezeTime < DateTime.Now) { user.Status = 0; user.FreezeTime = null; } } #endregion #endregion #region 登录验证通过 //TODO:大并发时有问题 //SoleUser(user); if (rememberPwd == 1) { RememberPwd(username, password); } //记录最后一次登录时间 user.LastLoginTime = DateTime.Now; user.PasswordFailureCount = 0; user.PasswordFailureTime = null; userBL.Update(user); //初始化用户权限 UserRights = rightBL.GetRightByUserId(user.UserId); CurrentUser = user; FormsAuthentication.SetAuthCookie(user.Username, true); LoginLog("用户登录", CurrentUser.UserId, HttpContext); #endregion return(Json(new { result = 0, url = backUrl }, JsonRequestBehavior.DenyGet)); } catch (Exception ex) { return(Json(new { result = 4, url = backUrl, message = ex.Message + ex.StackTrace }, JsonRequestBehavior.AllowGet)); } }