From 705909e14fe4e9f2fc261ee4eb40a8b41fa2f6d4 Mon Sep 17 00:00:00 2001 From: wzp <2880584989@qq.com> Date: 星期二, 12 七月 2022 17:37:26 +0800 Subject: [PATCH] 增加免密登陆的token --- web/web/SysUser.ashx | 135 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 117 insertions(+), 18 deletions(-) diff --git a/web/web/SysUser.ashx b/web/web/SysUser.ashx index f1bae60..190dddf 100644 --- a/web/web/SysUser.ashx +++ b/web/web/SysUser.ashx @@ -31,7 +31,13 @@ return this.UpdatePermission(context); case "updateStatus": return this.UpdateStatus(context); - + //淇敼瀵嗙爜 + case "updatePwd": + return UpdatePwd(context); + //鏍规嵁鏁扮粍瀛楃涓茶浆鎹㈠瓧鍏� + case "arrayStrToDict": + return ArrayStrToDict(context); + default: throw new Exception("Invalid Action=" + @string); } @@ -85,7 +91,8 @@ private JsonPageResult LoadUserMenuList(PageContext<SysUser> context) { context.CheckRight("104", FailedOperation.PromptOnly); - return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); + //return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); + return new JsonPageResult(true, (object) this._Dao.LoadUserRoleMenuList(context.GetInt("userid")).Keys); } private JsonPageResult SaveUser(PageContext<SysUser> context) @@ -95,6 +102,15 @@ string string2 = context.GetString("password"); string userName = context.GetString("userName"); string userType = context.GetString("userType"); + + List<string> tmpList = new List<string>(); + //鏁扮粍鍚堝苟 + tmpList.AddRange( JsonConvert.DeserializeObject<string[]>(context.GetString("userType")) ); + + //鏁扮粍鍘婚噸 + string[] tmpArray = DataConverter.DelRepeatData(tmpList.ToArray() ); + userType = string.Join(",", tmpArray) ; + string string3 = context.GetString("email"); string string4 = context.GetString("mobile"); int int2 = context.GetInt("emailFlag"); @@ -102,8 +118,11 @@ int num = 0; if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}")) throw new ArgumentException("璐︽埛鑷冲皯3浣嶅彲瑙佸瓧绗︼紝璇烽噸鏂拌緭鍏ワ紒"); - if (string.IsNullOrEmpty(string2) || string2.Length < 6) - throw new ArgumentException("璐︽埛瀵嗙爜鑷冲皯6浣嶏紝璇烽噸鏂拌緭鍏ワ紒"); + if(int1<= 0 ) + { + if (string.IsNullOrEmpty(string2) || string2.Length < 6) + throw new ArgumentException("璐︽埛瀵嗙爜鑷冲皯6浣嶏紝璇烽噸鏂拌緭鍏ワ紒"); + } if (string.IsNullOrEmpty(userName)) throw new ArgumentException("璐︽埛鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆锛�"); if (string.IsNullOrEmpty(userType)) @@ -134,19 +153,26 @@ throw new ArgumentException("璐︽埛鍚嶇О宸茬粡瀛樺湪锛岃閲嶆柊杈撳叆锛�"); sysUser.UserName = userName; - sysUser.UserType = string.IsNullOrEmpty(userType) ? 0 : int.Parse(userType); + sysUser.UserType = userType; sysUser.CreateTime = DateTime.Now; - if (int1 > 0) - { - SysUser userInfo = this._Dao.GetUserInfo(int1); - sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2); - sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; - } - else - { - sysUser.Password = DataHelper.MD5Hex(string2); - sysUser.IsEncryption = 1; - } + + /** + //鑾峰彇鍞竴鏍囪瘑绗� + string salt = DataConverter.getRandom(6); + if (int1 > 0) + { + SysUser userInfo = this._Dao.GetUserInfo(int1); + sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2); + sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; + } + else + { + string2 += salt; + sysUser.Password = DataHelper.MD5Hex(string2); + sysUser.IsEncryption = 1; + sysUser.Salt = salt; + }**/ + sysUser.Email = string3; sysUser.Mobile = string4; sysUser.MobileFlag = int3; @@ -156,6 +182,12 @@ if (int1 > 0) { context.CheckRight("1042", FailedOperation.PromptOnly); + if (int1 > 0) + { + SysUser userInfo = this._Dao.GetUserInfo(int1); + sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1; + } + //edit:yangzh by 20220612 淇敼鏃朵笉鏇存柊瀵嗙爜 this._Dao.Update(sysUser); } else @@ -164,7 +196,25 @@ if (this._Dao.Exists(string1)) throw new ArgumentException("璐︽埛宸茬粡瀛樺湪锛岃閲嶆柊杈撳叆锛�"); + + string password = ""; + if(int1> 0 ) + { + throw new ArgumentException("瀵嗙爜涓嶈兘涓虹┖锛岃閲嶆柊杈撳叆锛�"); + } + + //鑾峰彇鍞竴鏍囪瘑绗� + string salt = DataConverter.getRandom(6); + + string2 += salt; + password = DataHelper.MD5Hex(string2); + + sysUser.IsEncryption = 1; + sysUser.Salt = salt; + sysUser.Password = password; + this._Dao.Add(sysUser); + } return new JsonPageResult(true, (object) "璐︽埛淇濆瓨鎴愬姛锛�"); } @@ -177,10 +227,59 @@ int status = context.GetInt("status"); SysUser sysUser = new SysUser(); - sysUser.UserID = userId; - sysUser.Status = status; + sysUser.UserID = userId; + sysUser.Status = status; this._Dao.UpdateStatus(sysUser); return new JsonPageResult(true, "鏇存柊淇℃伅鐘舵�佹垚鍔燂紒"); } + + //淇敼瀵嗙爜 + private JsonPageResult UpdatePwd(PageContext<Model.SysUser> context) + { + string account = context.GetString("account"); + string newPwd = context.GetString("newPwd"); + int userID = 0; + + if (string.IsNullOrEmpty(account)) + { + throw new ArgumentException("绯荤粺璐﹀彿鍙傛暟寮傚父锛�"); + } + + if (string.IsNullOrEmpty(newPwd) || !System.Text.RegularExpressions.Regex.IsMatch(newPwd, @"[a-zA-Z0-9]{4,10}")) + { + throw new ArgumentException("鐧诲綍瀵嗙爜涓嶈兘涓虹┖锛屼笖蹇呴』涓�4-10浣嶈嫳鏂囨垨鏁板瓧瀛楃缁勫悎锛�"); + } + string salt = ""; + SysUser sysUser = _Dao.GetUser(account); + + salt = sysUser.Salt==null? "": sysUser.Salt.ToString(); + newPwd += salt; + + //瀵嗙爜MD5鍔犲瘑锛� + newPwd = DataHelper.MD5Hex(newPwd); + + _Dao.UpdatePwd(account, newPwd ); + + return new JsonPageResult(true, (object)"淇敼瀵嗙爜鎴愬姛锛�"); + } + + //鏍规嵁鏁扮粍瀛楃涓茶浆鎹㈠瓧鍏� + private JsonPageResult ArrayStrToDict(PageContext<Model.SysUser> context) + { + string userId = context.GetString("userId"); + string userType = context.GetString("userType"); + + Dictionary<string, object> dictionary = new Dictionary<string, object>(); + + List<object> list = DataConverter.stringToList(userType); + for (int i = 0; i < list.Count; i++) + { + //dictionary[userId.ToString()] = list[i]; + dictionary[list[i].ToString()] = list[i]; + } + + return new JsonPageResult(true, dictionary.Keys); + } + } -- Gitblit v1.9.1