//用户管理重置密码 public void ResetPsw() { try { using (ProxyBE p = new ProxyBE()) { Guid userid = new Guid(Request["UserID"]); User user = p.Client.GetUser(SenderUser, userid); if (user == null) { throw new Exception("所查找用户不存在。"); } user.Password = CEncrypt.EncryptString(UserDefaultPassword); user.LoginErrorCount = 0; user.IsLocked = false; user.IsDisabled = false; SaveUserArgs sarg = new SaveUserArgs(); sarg.User = user; p.Client.SaveUser(SenderUser, sarg); WriteSuccess(); } } catch (Exception ex) { WriteError(ex.Message, ex); } }
//当前用户修改密码 public void ModifiyPsw() { string OldPassword = Request["OldPassword"]; string NewPassword = Request["NewPassword"]; try { using (ProxyBE p = new ProxyBE()) { User user = p.Client.GetUser(SenderUser, this.CurrentUser.UserID); if (CEncrypt.DecryptString(user.Password) != OldPassword) { throw new Exception("旧密码错误"); } user.Password = CEncrypt.EncryptString(NewPassword); SaveUserArgs sarg = new SaveUserArgs(); sarg.User = user; p.Client.SaveUser(SenderUser, sarg); WriteSuccess(); } } catch (Exception ex) { WriteError(ex.Message, ex); } }
private void SaveRole(string userID, string rolesfunids) { using (ProxyBE p = new ProxyBE()) { List <System.Guid> roleItemIDs = new List <System.Guid>(); SaveUserArgs sargs = new SaveUserArgs(); if (!string.IsNullOrEmpty(rolesfunids)) { string[] roles = rolesfunids.Split(','); foreach (string item in roles) { roleItemIDs.Add(new Guid(item)); } } var userItem = p.Client.GetUser(SenderUser, new Guid(userID)); if (userItem == null) { return; } sargs.RoleIDs = roleItemIDs; sargs.User = userItem; //保存用户时,只要把角色赋值给它即可,引擎会自动处理. p.Client.SaveUser(SenderUser, sargs); } }
/// <summary> /// Save User /// </summary> public void SaveUser() { using (ProxyBE p = new ProxyBE()) { try { if (Request["DepartmentID"] == "请选择") { throw new Exception("请选择所属部门"); } User user = p.Client.GetUser(null, parm.UserID); if (user == null) { user = new User(); user.UserID = parm.UserID; user.Created = DateTime.Now; user.CreatedBy = SenderUser.UserCode + "." + SenderUser.UserName; user.Modified = DateTime.Now; user.ModifiedBy = SenderUser.UserCode + "." + SenderUser.UserName; user.Password = CEncrypt.EncryptString(UserDefaultPassword); } user.UserCode = parm.UserCode.Trim(); user.UserName = parm.UserName.Trim(); user.Sex = parm.Sex.Trim(); user.Position = parm.Position.Trim(); user.Email = parm.Email.Trim(); //手机号码唯一 user.Mobile = parm.Mobile.Trim(); user.Description = parm.Description.Trim(); user.IDNumber = parm.IDNumber; user.LoginErrorCount = 0; user.IsDisabled = Convert.ToBoolean(parm.IsDisabled); user.IsLocked = parm.IsLocked; user.DepartmentID = parm.DepartmentID; SaveUserArgs args = new SaveUserArgs(); args.User = user; string RoleIDs = Request["RoleIDs"]; if (!string.IsNullOrEmpty(RoleIDs)) { args.RoleIDs = new List <Guid>(); string[] roles = RoleIDs.Split(','); foreach (string item in roles) { args.RoleIDs.Add(new Guid(item)); } } p.Client.SaveUser(SenderUser, args); WriteSuccess(); } catch (Exception ex) { WriteError(ex.Message, ex); } } }
public void ModifyPassword() { try { if (CurrentUser == null || CurrentUser.UserID == Guid.Empty) { throw new Exception("未获取到用户信息,请先登录"); } using (ProxyBE be = new ProxyBE()) { #region 登录 User user = be.Client.GetUserByUserCode(null, CurrentUser.UserCode); string Password = Request["Password"].ToString(); user.Password = CEncrypt.EncryptString(Password); SaveUserArgs args = new SaveUserArgs(); args.User = user; be.Client.SaveUser(SenderUser, args); #endregion } //StringBuilder sb = new StringBuilder(); //sb.Append("{"); //sb.AppendFormat("'isOk':{0}", 1); //sb.AppendFormat(",'message':'{0}'", "success"); //sb.AppendFormat(",'url':'{0}'", url); //sb.Append("}"); //Response.Write(sb.ToString()); Response.Write("{\"result\":\"success\",\"errorCode\":0}"); } catch (Exception ex) { PLogger.LogError(ex); WriteError(ex.Message); } }
public void Login() { try { string UserCode = Request["username"]; string Password = Request["password"]; string VerifyCode = Request["verifycode"]; if (string.IsNullOrEmpty(UserCode)) { throw new Exception("用户名不能为空"); } if (VerifyCode.ToLower() != Session["LoginVerifyCode"].ToString().ToLower()) { throw new PException("验证码不正确"); } using (ProxyBE be = new ProxyBE()) { #region 登录 User user = be.Client.GetUserByUserCode(null, UserCode); if (user == null) { throw new PException("errorUserName"); } if (user.IsLocked) { throw new PException("errorLockedUserName"); } if (user.IsDisabled) { throw new PException("errorDisabledUserName"); } if (user.LoginErrorCount >= 5) { throw new PException("errorLoginOutTimes"); } SaveUserArgs args = new SaveUserArgs(); //记录当前登录时间 if (CEncrypt.EncryptString(Password) != user.Password) { user.LoginErrorCount += 1; PException ex = null; if (user.LoginErrorCount >= 5) { user.IsLocked = true; ex = new PException("errorLoginOutTimes"); } else { ex = new PException("errorPassword{0}", 5 - user.LoginErrorCount); } args.User = user; be.Client.SaveUser(base.SenderUser, args); throw ex; } args.User = user; user.LoginErrorCount = 0; user.LastLoginTime = DateTime.Now; be.Client.SaveUser(base.SenderUser, args); SessionUser su = new SessionUser(); su.UserCode = user.UserCode; //用户类型 su.UserType = (int)UserType.U; //su.LoginUrl = UserLoginUrl; su.UserID = user.UserID; su.UserName = user.UserName; su.IsSystemUser = user.IsSystem; su.LastLoginTime = user.LastLoginTime; su.CompanyID = user.CompanyID; OnlineUser.Lock(su); this.CurrentUser = su; #endregion #region 加载权限项 List <Role> userRoles = be.Client.GetRolesByUserID(null, user.UserID); su.Roles = userRoles; List <PrivilegeItem> privilegeItems = be.Client.GetPrivilegeItemByUserID(null, user.UserID); var privilegeItemS = from pi in privilegeItems select pi.PrivilegeItemID; su.PrivilegeItemIDs = privilegeItemS.ToList <Guid>(); List <Privilege> privileges = be.Client.GetPrivilegesByUserID(null, user.UserID); var privilegeS = from pl in privileges select pl.PrivilegeID; su.PrivilegeIDs = privilegeS.ToList <Guid>(); Dictionary <string, List <string> > PrivilegeCodesDir = new Dictionary <string, List <string> >(); foreach (var item in privileges) { if (PrivilegeCodesDir.ContainsKey(item.PrivilegeCode.ToLower())) { continue; } List <string> itemCodes = new List <string>(); var plItems = privilegeItems.Where(pl => pl.PrivilegeID.ToString() == item.PrivilegeID.ToString() && pl.IsDisabled == false).ToList(); if (plItems != null) { foreach (var itemPrivilegeItems in plItems) { itemCodes.Add(itemPrivilegeItems.PrivilegeItemCode.ToLower()); } } PrivilegeCodesDir.Add(item.PrivilegeCode.ToLower(), itemCodes); } su.PrivilegeCodes = PrivilegeCodesDir; #endregion StringBuilder sb = new StringBuilder(); sb.Append('{'); sb.Append(string.Format("\"isOk\":\"{0}\",\"message\":\"{1}\",\"url\":\"{2}\"", 1, "success", "/Index.aspx")); sb.Append('}'); Response.Write(sb.ToString()); //WriteSuccess(); } } catch (Exception ex) { PLogger.LogError(ex); WriteError(ex.Message); } }
public void SaveUser(Sender sender, SaveUserArgs args) { try { if (string.IsNullOrEmpty(args.User.UserCode)) { throw new Exception(string.Format("用户编号:{0}命名无效,可能存在特殊字符。", args.User.UserCode)); } if (string.IsNullOrEmpty(args.User.UserName)) { throw new Exception(string.Format("用户名称:{0}命名无效,可能存在特殊字符。", args.User.UserName)); } if (UserIsDuplicated(sender, args.User)) { throw new Exception(string.Format("用户编号:{0}已存在,请重新输入。", args.User.UserCode)); } if (UserMobileIsDuplicated(sender, args.User)) { throw new Exception(string.Format("用户手机号:{0}已存在,请重新输入。", args.User.Mobile)); } using (ObjectProxy op = new ObjectProxy(true)) { User user = new User(); user.UserID = args.User.UserID; if (op.LoadUserByUserID(user) == 0) { user = null; } if (user == null) { args.User.Created = DateTime.Now; args.User.CreatedBy = sender.UserCode + "." + sender.UserName; args.User.Modified = args.User.Created; args.User.ModifiedBy = args.User.CreatedBy; op.InsertUser(args.User); UserPassword up = new UserPassword(); up.UserID = args.User.UserID; up.Password = args.User.Password; up.Modified = DateTime.Now; up.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertUserPassword(up); } else { args.User.Modified = DateTime.Now; args.User.ModifiedBy = sender.UserCode + "." + sender.UserName; op.UpdateUserByUserID(args.User); if (args.RoleIDs != null) { op.DeleteUser2RolesByUserID(args.User.UserID); } if (args.User.Password != user.Password) { UserPassword up = new UserPassword(); up.UserID = args.User.UserID; up.Password = args.User.Password; up.Modified = DateTime.Now; up.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertUserPassword(up); } } if (args.RoleIDs != null) { foreach (Guid roleID in args.RoleIDs) { User2Role ur = new User2Role(); ur.UserID = args.User.UserID; ur.RoleID = roleID; op.InsertUser2Role(ur); } } op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public void ResetPasswordByMobile() { try { if (string.IsNullOrEmpty(Request["UserID"])) { Response.Write("{\"result\":\"error\",\"errorCode\":31}"); return; } if (string.IsNullOrEmpty(Request["Token"])) { Response.Write("{\"result\":\"error\",\"errorCode\":31}"); return; } using (ProxyBE p = new ProxyBE()) { User user = p.Client.GetUser(SenderUser, new Guid(Request["UserID"])); if (user == null) { Response.Write("{\"result\":\"error\",\"errorCode\":31}"); return; } #region 验证码 string code = Request["SMSVerifyCode"]; if (!string.IsNullOrEmpty(code)) { if (string.IsNullOrEmpty(Session["SMSVerify_" + user.Mobile].ToString())) { Response.Write("{\"result\":\"error\",\"errorCode\":25}"); return; } if (code.ToString().ToUpper() != Session["SMSVerify_" + user.Mobile].ToString().ToUpper()) { Response.Write("{\"result\":\"error\",\"errorCode\":26}"); return; } string timeout = Session["SMSVerify_TimeOut_" + user.Mobile].ToString(); if (!string.IsNullOrEmpty(timeout)) { if (DateTime.Now > DateTime.Parse(timeout)) { Response.Write("{\"result\":\"error\",\"errorCode\":27}"); return; } } } else { Response.Write("{\"result\":\"error\",\"errorCode\":23}"); return; } #endregion user.Password = CEncrypt.EncryptString(Request["confirmPassword"].ToString()); SaveUserArgs args = new SaveUserArgs(); args.User = user; p.Client.SaveUser(SenderUser, args); StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.AppendFormat("\"result\":\"{0}\",", "success"); sb.AppendFormat("\"errorCode\":{0}", 0); sb.Append("}"); Response.Write(sb.ToString()); } } catch { Response.Write("{\"result\":\"error\",\"errorCode\":10}"); } }