/// <summary> /// 获得序列 /// </summary> /// <param name="fullName">序列名</param> /// <param name="defaultSequence">默认序列</param> /// <returns>序列实体</returns> protected BaseSequenceEntity GetSequenceByLock(string fullName, int defaultSequence) { BaseSequenceEntity sequenceEntity = new BaseSequenceEntity(); // 这里主要是为了判断是否存在 sequenceEntity = this.GetEntityByName(fullName); if (sequenceEntity == null) { // 这里添加记录时加锁机制。 // 是否已经被锁住 this.ReturnStatusCode = StatusCode.CanNotLock.ToString(); for (int i = 0; i < BaseSystemInfo.LockNoWaitCount; i++) { // 被锁定的记录数 int lockCount = DbLogic.LockNoWait(DbHelper, BaseSequenceEntity.TableName, new KeyValuePair <string, object>(BaseSequenceEntity.FieldFullName, BaseSequenceEntity.TableName)); if (lockCount > 0) { sequenceEntity.FullName = fullName; sequenceEntity.Reduction = defaultSequence - 1; sequenceEntity.Sequence = defaultSequence; sequenceEntity.Step = DefaultStep; this.AddEntity(sequenceEntity); this.ReturnStatusCode = StatusCode.LockOK.ToString(); break; } else { System.Threading.Thread.Sleep(BaseRandom.GetRandom(1, BaseSystemInfo.LockNoWaitTickMilliSeconds)); } } if (this.ReturnStatusCode == StatusCode.LockOK.ToString()) { // JiRiGaLa 这个是否能省略 sequenceEntity = this.GetEntityByName(fullName); } } else { // 若记录已经存在,加锁,然后读取记录。 // 是否已经被锁住 this.ReturnStatusCode = StatusCode.CanNotLock.ToString(); for (int i = 0; i < BaseSystemInfo.LockNoWaitCount; i++) { // 被锁定的记录数 int lockCount = DbLogic.LockNoWait(DbHelper, BaseSequenceEntity.TableName, new KeyValuePair <string, object>(BaseSequenceEntity.FieldFullName, fullName)); if (lockCount > 0) { sequenceEntity = this.GetEntityByName(fullName); this.ReturnStatusCode = StatusCode.LockOK.ToString(); break; } else { System.Threading.Thread.Sleep(BaseRandom.GetRandom(1, BaseSystemInfo.LockNoWaitTickMilliSeconds)); } } } return(sequenceEntity); }
/// <summary> /// Returns a random integer in range [min, max]. /// </summary> /// <param name="min">The inclusive lower bound value.</param> /// <param name="max">The inclusive upper bound value, must be greater than min value.</param> /// <returns>Number in range [min, max].</returns> public static int Integer(int min, int max) { if (max < min) { throw new System.ArgumentException("Max should be greater or equals min."); } return(BaseRandom.Next(min, max + 1)); }
public void Test_Utilities_BaseRandom_GetRandom() { Console.WriteLine("Test_Utilities_BaseRandom_GetRandom"); int a = BaseRandom.GetRandom(); int b = BaseRandom.GetRandom(0, 1000); string c = BaseRandom.GetRandomString(); Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); }
/// <summary> /// http://stackoverflow.com/a/12388092/1318333 /// </summary> /// <param name="from"></param> /// <param name="to"></param> /// <returns></returns> public decimal Next(decimal from, decimal to) { var fromScale = 20; var toScale = 20; var scale = (byte)(fromScale + toScale); if (scale > 28) { scale = 28; } var r = new decimal(BaseRandom.Next(), BaseRandom.Next(), BaseRandom.Next(), false, scale); if (Math.Sign(from) == Math.Sign(to) || from == 0 || to == 0) { return(decimal.Remainder(r, to - from) + from); } var getFromNegativeRange = (double)from + BaseRandom.NextDouble() * ((double)to - (double)from) < 0; return(getFromNegativeRange ? decimal.Remainder(r, -from) + from : decimal.Remainder(r, to)); }
public void BoomToCollect(Vector3 worldPosFrom, Vector3 worldPosTo, System.Action doOnFinish) { //prefab.sprite = ResourceMgr.Texture2DToSprite(ResourceMgr.singleton.AddResource(TableMgr.singleton.ValueTable.GetQualityFrame(quality)) as Texture2D); //for (int i = 0; i < count; i++) { GameObject go = GameObject.Instantiate(prefab.gameObject, parent); worldPosFrom = new Vector3(worldPosFrom.x, worldPosFrom.y, worldPosTo.z); go.transform.position = worldPosFrom; go.SetActive(true); var vx = BaseRandom.Next(-rangeX, rangeX); var vy = BaseRandom.Next(0.0f, rangeY); var time = timeToCollect + BaseRandom.Next(0.0f, 0.3f); //List<int> vxy = new List<int>() { -1, 1 }; Vector3[] path = new Vector3[2]; //path[0] = go.transform.position; path[0] = go.transform.position - new Vector3(vx, vy, 0); path[1] = worldPosTo; //go.transform.DORotate(new Vector3(0, 180, 0), 0.5f).SetLoops(-1, LoopType.Incremental); go.transform.DOScale(Vector3.one, time).SetEase(easeType); var tweenPath = go.transform.DOPath(path, time, pathType); tweenPath.onComplete = () => { SoundEffectManager.Instance["2d"].PlaySoundEffectOneShot("get_card_01"); if (doOnFinish != null) { doOnFinish(); } Destroy(go); }; tweenPath.SetEase(easeType); } }
/// <summary> /// Returns a random integer in range. /// </summary> /// <param name="min">Values range.</param> /// <returns>Number in range.</returns> public static int Integer(Range range) { return(BaseRandom.Next((int)range.Min, ((int)range.Max) + 1)); }
/// <summary> /// Returns a random non-negative integer number. /// </summary> /// <returns>Number in range [0, int.MaxValue].</returns> public static int Integer() { return(BaseRandom.Next()); }
public double Next(double min, double max) { return(BaseRandom.NextDouble() * (max - min) + min); }
/// <summary> /// 增加用户账号 /// </summary> /// <param name="user"></param> /// <returns></returns> public bool AddUser(TAB_USEREntity user) { //1、先往中天里添加账号 BaseUserEntity userEntity = new BaseUserEntity(); BaseUserManager userManager = new BaseUserManager(); BaseUserLogOnManager userLogOnManager = new BaseUserLogOnManager(); userEntity.UserFrom = "K8"; userEntity.UserName = user.USER_NAME; userEntity.Code = user.EMPLOYEE_CODE; userEntity.RealName = user.REAL_NAME; userEntity.CompanyName = user.OWNER_SITE; var organize = new BaseOrganizeManager().GetObjectByName(user.OWNER_SITE); if (organize != null) { userEntity.CompanyId = organize.Id.ToString(); } userEntity.Description = user.REMARK; userEntity.DeletionStateCode = 0; userEntity.DepartmentName = user.DEPT_NAME; userEntity.Enabled = int.Parse(user.BL_LOCK_FLAG.ToString()); bool identity = false; if (!string.IsNullOrEmpty(userEntity.Id)) { identity = true; } userEntity.Id = userManager.Add(userEntity, identity, true); //添加用户密码表 BaseUserLogOnEntity userLogOnEntity = userLogOnManager.GetObject(userEntity.Id); userLogOnEntity = new BaseUserLogOnEntity(); userLogOnEntity.Id = userEntity.Id; //邦定mac地址 userLogOnEntity.CheckIPAddress = 1; var salt = BaseRandom.GetRandomString(20); userLogOnEntity.Salt = salt; userLogOnEntity.UserPassword = userManager.EncryptUserPassword(user.USER_PASSWD, salt); //是否检查机器码 MAC地址 int checkIPAddress = 1; int.TryParse(user.BL_CHECK_COMPUTER.ToString(), out checkIPAddress); userLogOnEntity.CheckIPAddress = checkIPAddress; userLogOnManager.AddObject(userLogOnEntity); //用户的联系方式 BaseUserContactManager userContactManager = new BaseUserContactManager(); BaseUserContactEntity userContactEntity = new BaseUserContactEntity(); userContactEntity.Id = userEntity.Id; if (!string.IsNullOrEmpty(user.MOBILE)) { userContactEntity.Mobile = user.MOBILE; } userContactManager.AddObject(userContactEntity); //2、再往K8里加用户 TAB_USERManager tabUserManager = new TAB_USERManager(); TAB_USERPOPEDOMManager userMenuManager = new TAB_USERPOPEDOMManager(); user.CREATE_SITE = Utilities.UserInfo.CompanyName; user.CREATE_USER = Utilities.UserInfo.RealName; user.CREATE_DATE = DateTime.Now; user.USER_NAME = user.USER_NAME.Trim(); user.ID = decimal.Parse(userEntity.Id); tabUserManager.Add(user, false, true); var sql = string.Format(" UPDATE TAB_USER SET USER_PASSWORD=NULL,USER_PASSWD='{0}',SALT ='{1}', CHANGEPASSWORDDATE=to_date('{2}','yyyy-mm-dd-hh24:mi:ss') WHERE ID = '{3}'", userEntity.UserPassword, salt, DateTime.Now, user.ID); tabUserManager.ExecuteNonQuery(sql); //3、新增账号的时候默认增加新员工的权限为网点员工 var roleMenus = GetMenusByUserCode("网点员工", "", "上海"); foreach (var roleMenu in roleMenus) { TAB_USERPOPEDOMEntity userPOPEDOM = new TAB_USERPOPEDOMEntity(); userPOPEDOM.BL_INSERT = roleMenu.BL_INSERT; userPOPEDOM.BL_UPDATE = roleMenu.BL_UPDATE; userPOPEDOM.BL_DELETE = roleMenu.BL_DELETE; userPOPEDOM.USER_NAME = user.USER_NAME; userPOPEDOM.OWNER_SITE = user.OWNER_SITE; userPOPEDOM.MENU_GUID = roleMenu.MENU_GUID; userMenuManager.Add(userPOPEDOM); } return(true); }
public decimal Money(decimal min, decimal max) { return(min == max ? min : (BaseRandom.Next((int)(min * 100), (int)(max * 100)) / (decimal)100)); }
/// <summary> /// 增加用户账号 /// 传入dbhelper 方法调用使用事务 避免部分同步成功 /// </summary> /// <param name="userEntity"></param> /// <param name="userContact"></param> /// <param name="userCenterDbHelper"></param> /// <param name="k8DbHelper"></param> /// <returns></returns> public bool AddUser(BaseUserEntity userEntity, BaseUserContactEntity userContact, IDbHelper userCenterDbHelper, IDbHelper k8DbHelper) { //1、先往中天里添加账号 BaseUserManager userManager = new BaseUserManager(userCenterDbHelper); userEntity.UserFrom = "Security"; userEntity.CreateBy = Utilities.UserInfo.RealName; userEntity.CreateUserId = Utilities.UserInfo.Id; bool identity = false; if (string.IsNullOrEmpty(userEntity.Id)) { identity = true; } userEntity.Id = userManager.Add(userEntity, identity, true); //添加用户密码表 BaseUserLogOnManager userLogOnManager = new BaseUserLogOnManager(userCenterDbHelper); BaseUserLogOnEntity userLogOnEntity = userLogOnManager.GetObject(userEntity.Id); userLogOnEntity = new BaseUserLogOnEntity(); userLogOnEntity.Id = userEntity.Id; //是否验证邦定mac地址,默认绑定 userLogOnEntity.CheckIPAddress = 1; //产生盐 var salt = BaseRandom.GetRandomString(20); userLogOnEntity.Salt = salt; userLogOnEntity.UserPassword = userManager.EncryptUserPassword(userEntity.UserPassword, salt); //是否检查机器码MAC地址 userLogOnManager.AddObject(userLogOnEntity); //添加用户的联系方式 BaseUserContactManager userContactManager = new BaseUserContactManager(userCenterDbHelper); userContact.MobileValiated = 1; userContactManager.AddObject(userContact); //2、再往K8里加用户 TAB_USERManager tabUserManager = new TAB_USERManager(k8DbHelper); TAB_USEREntity tabUserEntity = new TAB_USEREntity(); tabUserEntity.OWNER_SITE = userEntity.CompanyName; tabUserEntity.DEPT_NAME = userEntity.DepartmentName; tabUserEntity.USER_NAME = userEntity.UserName.ToLower(); tabUserEntity.EMPLOYEE_CODE = userEntity.Code; tabUserEntity.EMPLOYEE_NAME = userEntity.RealName; tabUserEntity.REAL_NAME = userEntity.RealName; tabUserEntity.ONLY_USER_NAME = userEntity.NickName.ToLower(); tabUserEntity.ID_CARD = userEntity.IDCard; tabUserEntity.MOBILE = userContact.Mobile; tabUserEntity.CREATE_SITE = Utilities.UserInfo.CompanyName; tabUserEntity.CREATE_USER = Utilities.UserInfo.RealName; tabUserEntity.CREATE_DATE = DateTime.Now; tabUserEntity.BL_LOCK_FLAG = 1; tabUserEntity.BL_TYPE = 0; tabUserEntity.BL_CHECK_COMPUTER = 1; tabUserEntity.BL_CHECK_NAME = 1; tabUserEntity.ID = decimal.Parse(userEntity.Id); tabUserEntity.USER_DATE = DateTime.Now.AddYears(3); tabUserManager.Add(tabUserEntity, false, true); //更新密码和盐 var sql = string.Format(" UPDATE TAB_USER SET USER_PASSWORD=NULL,USER_PASSWD='{0}',SALT ='{1}', CHANGEPASSWORDDATE=to_date('{2}','yyyy-mm-dd-hh24:mi:ss') WHERE ID = '{3}'", userEntity.UserPassword, salt, DateTime.Now, tabUserEntity.ID); tabUserManager.ExecuteNonQuery(sql); //3、新增账号的时候默认增加新员工的权限为网点员工 var roleMenus = GetMenusByUserCode(k8DbHelper, "网点员工", "", "上海"); TAB_USERPOPEDOMManager userMenuManager = new TAB_USERPOPEDOMManager(k8DbHelper); foreach (var roleMenu in roleMenus) { TAB_USERPOPEDOMEntity userPOPEDOM = new TAB_USERPOPEDOMEntity(); userPOPEDOM.BL_INSERT = roleMenu.BL_INSERT; userPOPEDOM.BL_UPDATE = roleMenu.BL_UPDATE; userPOPEDOM.BL_DELETE = roleMenu.BL_DELETE; userPOPEDOM.USER_NAME = tabUserEntity.USER_NAME; userPOPEDOM.OWNER_SITE = tabUserEntity.OWNER_SITE; userPOPEDOM.MENU_GUID = roleMenu.MENU_GUID; userMenuManager.Add(userPOPEDOM); } return(true); }
public int InputStudent(int UsersId = 1) { try { List <Students> list = new List <Students>(); var result = 0; HttpPostedFileBase file = Request.Files[0]; if (null != file) { IWorkbook wk = null; //.xlsx 应该XSSFWorkbook workbook = new XSSFWorkbook(file); 而xls应该用 HSSFWorkbook workbook = new HSSFWorkbook(file); var f = file.FileName.Substring(file.FileName.LastIndexOf('.')); if (f.Equals(".xls")) { //把xls文件中的数据写入wk中 wk = new HSSFWorkbook(file.InputStream); } else { //把xlsx文件中的数据写入wk中 wk = new XSSFWorkbook(file.InputStream); } ISheet sheet = wk.GetSheetAt(0); IRow row = null; //读取当前行数据 //LastRowNum 是当前表的总行数-1 for (int k = 1; k <= sheet.LastRowNum; k++) { row = sheet.GetRow(k);//读取当前行数据 Students model = new Students(); if (row != null) { //LastRowNum 是当前表的总行数-1 for (int j = 0; j < row.LastCellNum; j++) { if (j == 0) { continue; } //读取该行的第j列数据 model.StudentNum = BaseRandom.GenerateIntID().ToString(); model.StudentPwd = Md5Helper.MD5Encoding("123456", 123); model.StudentName = row.GetCell(3).ToString(); model.StudentIdCard = row.GetCell(4).ToString(); model.CreateDate = DateTime.Now; model.CreateUserId = UsersId; var collegeName = row.GetCell(7).ToString(); var strColleges = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Colleges")); var listColleges = JsonConvert.DeserializeObject <List <Colleges> >(strColleges); var collegeId = listColleges.Where(m => m.CollegeName.Equals(collegeName)).FirstOrDefault().CollegeId; model.CollegeId = collegeId; var majorName = row.GetCell(8).ToString(); var strMajors = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Majors")); var listMajors = JsonConvert.DeserializeObject <List <Majors> >(strMajors); var majorId = listMajors.Where(m => m.MajorName.Equals(majorName)).FirstOrDefault().MajorId; model.MajorId = majorId; var stageName = row.GetCell(9).ToString(); var strStages = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Stages")); var listStages = JsonConvert.DeserializeObject <List <Stages> >(strStages); var stageId = listStages.Where(m => m.StageName.Equals(stageName)).FirstOrDefault().StageId; model.StageId = stageId; var className = row.GetCell(10).ToString(); var strClasses = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Classes")); var listClasses = JsonConvert.DeserializeObject <List <Classes> >(strClasses); var classId = listClasses.Where(m => m.ClassName.Equals(className)).FirstOrDefault().ClassId; model.ClassId = classId; } list.Add(model); } } if (student_BLL.AddList(list)) { result = 1; } } return(result); } catch (Exception ex) { ErrorLog.WriteLog(ex); return(0); } }
/// <summary> /// 忘记密码按手机号码获取 /// </summary> /// <param name="applicationCode">应用编号</param> /// <param name="accountCode">账户</param> /// <param name="password">密码</param> /// <param name="userName">用户名</param> /// <param name="mobile">手机号码</param> /// <returns>成功</returns> public bool GetPasswordByMobile(BaseUserInfo userInfo, string userName, string mobile) { bool result = false; if (!string.IsNullOrEmpty(mobile)) { BaseUserContactManager manager = new BaseUserContactManager(); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); if (!string.IsNullOrEmpty(mobile)) { parameters.Add(new KeyValuePair <string, object>(BaseUserContactEntity.FieldMobile, mobile)); } // 手机号码重复不发验证码,防止把别人的密码给修改了 DataTable dt = manager.GetDataTable(parameters); string id = string.Empty; if (dt != null && dt.Rows.Count == 1) { id = dt.Rows[0][BaseUserContactEntity.FieldId].ToString(); } BaseUserManager userManager = null; if (!string.IsNullOrEmpty(id)) { userManager = new BaseUserManager(); bool userNameOK = true; BaseUserEntity userEntity = userManager.GetObject(id); if (!string.IsNullOrEmpty(userName)) { if (!string.IsNullOrEmpty(userEntity.UserName) && !userEntity.UserName.Equals(userName)) { userNameOK = false; userInfo = null; } } // 只有有效的用户,才能获取密码,被删除的,无效的,不可以获取密码 if (userEntity.Enabled == 0 || userEntity.DeletionStateCode == 1) { userNameOK = false; userInfo = null; } if (userNameOK) { userInfo = userManager.ConvertToUserInfo(userEntity); } else { userInfo = null; } } if (!string.IsNullOrEmpty(id) && userInfo != null) { string userPassword = string.Empty; if (BaseSystemInfo.CheckPasswordStrength) { userPassword = BaseRandom.GetRandomString(8).ToLower(); } else { userPassword = BaseRandom.GetRandomString(8).ToLower(); // Random random = new System.Random(); // userPassword = random.Next(100000, 999999).ToString(); } // 看是否有合理的请求参数 if (!string.IsNullOrEmpty(userPassword)) { // 看是否一天超过了3次了 int sendUserPasswordCount = this.GetSendUserPasswordCount(mobile); if (sendUserPasswordCount < 4) { // 应用编号 if (this.SendUserPassword(userInfo, mobile, userPassword)) { userManager = new BaseUserManager(userInfo); // 按手机号码获取的,可以自动解锁,防止密码连续输入错误,然后手机号码获取密码后,是被锁定状态,提高工作效率 userManager.SetPassword(userInfo.Id, userPassword, true); userManager.GetStateMessage(); if (userManager.StatusCode == Status.SetPasswordOK.ToString()) { result = true; } } } } } } return(result); }
/// <summary> /// 更新密码 /// </summary> /// <param name="userId">用户主键、方便外部系统调用,若能传递参数过来</param> /// <param name="oldPassword">原密码</param> /// <param name="newPassword">新密码</param> /// <returns>影响行数</returns> public virtual BaseUserInfo ChangePassword(string userId, string oldPassword, string newPassword) { #if (DEBUG) int milliStart = Environment.TickCount; #endif string encryptOldPassword = oldPassword; string encryptNewPassword = newPassword; BaseUserInfo userInfo = null; // 密码强度检查 if (BaseSystemInfo.CheckPasswordStrength) { if (String.IsNullOrEmpty(newPassword)) { this.StatusCode = Status.PasswordCanNotBeNull.ToString(); return(userInfo); } } // 判断输入原始密码是否正确 BaseUserLogOnEntity entity = new BaseUserLogOnManager(this.DbHelper, this.UserInfo).GetObject(UserInfo.Id); if (entity.UserPassword == null) { entity.UserPassword = string.Empty; } // 加密密码 if (BaseSystemInfo.ServerEncryptPassword) { encryptOldPassword = this.EncryptUserPassword(oldPassword, entity.Salt); } // 密码错误 if (!entity.UserPassword.Equals(encryptOldPassword, StringComparison.CurrentCultureIgnoreCase)) { this.StatusCode = Status.OldPasswordError.ToString(); return(userInfo); } // 对比是否最近2次用过这个密码 if (BaseSystemInfo.CheckPasswordStrength) { /* * int i = 0; * BaseParameterManager manager = new BaseParameterManager(this.DbHelper, this.UserInfo); * var dt = manager.GetDataTableParameterCode("User", this.UserInfo.Id, "Password"); * foreach (DataRow dr in dt.Rows) * { * string parameter = dr[BaseParameterEntity.FieldParameterContent].ToString(); * if (parameter.Equals(newPassword)) * { * this.StatusCode = Status.PasswordCanNotBeRepeat.ToString(); * return userInfo; * } * i++; * { * // 判断连续2个密码就是可以了 * if (i > 2) * { * break; * } * } * } */ } // 更改密码,同时修改密码的修改日期,这里需要兼容多数据库 string salt = string.Empty; if (BaseSystemInfo.ServerEncryptPassword) { salt = BaseRandom.GetRandomString(20); encryptNewPassword = this.EncryptUserPassword(newPassword, salt); } SQLBuilder sqlBuilder = new SQLBuilder(this.DbHelper); sqlBuilder.BeginUpdate(BaseUserLogOnEntity.TableName); if (BaseSystemInfo.ServerEncryptPassword) { sqlBuilder.SetValue(BaseUserLogOnEntity.FieldSalt, salt); } // 宋彪:此处增加更新密码强度级别 sqlBuilder.SetValue(BaseUserLogOnEntity.FieldPasswordStrength, SecretUtil.GetUserPassWordRate(newPassword)); sqlBuilder.SetValue(BaseUserLogOnEntity.FieldUserPassword, encryptNewPassword); // 2015-08-04 吉日嘎拉 修改了密码后,把需要修改密码字段设置为 0 sqlBuilder.SetValue(BaseUserLogOnEntity.FieldNeedModifyPassword, 0); sqlBuilder.SetDBNow(BaseUserLogOnEntity.FieldChangePasswordDate); sqlBuilder.SetWhere(BaseUserLogOnEntity.FieldId, userId); int result = sqlBuilder.EndUpdate(); if (result == 1) { // 2015-12-09 吉日嘎拉 确认已经记录了修改密码日志 // BaseLoginLogManager.AddLog(this.UserInfo, Status.ChangePassword.ToDescription()); // 2015-12-09 吉日嘎拉 增加日志功能、谁什么时候设置了谁的密码? var record = new BaseModifyRecordEntity(); record.TableCode = BaseUserLogOnEntity.TableName.ToUpper(); record.TableDescription = "用户登录信息表"; record.ColumnCode = BaseUserLogOnEntity.FieldUserPassword; record.ColumnDescription = "用户密码"; record.RecordKey = userId; record.NewValue = "修改密码"; // record.OldValue = ""; if (this.UserInfo != null) { record.IPAddress = this.UserInfo.IPAddress; record.CreateUserId = this.UserInfo.Id; record.CreateOn = DateTime.Now; } BaseModifyRecordManager modifyRecordManager = new Business.BaseModifyRecordManager(this.UserInfo, BaseUserEntity.TableName + "_Log"); modifyRecordManager.Add(record, true, false); /* * // 若是强类型密码检查,那就保存密码修改历史,防止最近2-3次的密码相同的功能实现。 * if (BaseSystemInfo.CheckPasswordStrength) * { * BaseParameterManager parameterManager = new BaseParameterManager(this.DbHelper, this.UserInfo); * BaseParameterEntity parameterEntity = new BaseParameterEntity(); * parameterEntity.CategoryCode = "User"; * parameterEntity.ParameterId = this.UserInfo.Id; * parameterEntity.ParameterCode = "Password"; * parameterEntity.ParameterContent = newPassword; * parameterEntity.DeletionStateCode = 0; * parameterEntity.Enabled = true; * parameterEntity.Worked = true; * parameterManager.AddObject(parameterEntity); * } */ userInfo = this.LogOnByOpenId(this.UserInfo.OpenId, this.UserInfo.SystemCode).UserInfo; // 同步处理其他系统的密码修改动作 if (BaseSystemInfo.ServerEncryptPassword) { // AfterChangePassword(this.UserInfo.Id, salt, oldPassword, newPassword); } // 修改密码成功,写入状态 this.StatusCode = Status.ChangePasswordOK.ToString(); } else { // 数据可能被删除 this.StatusCode = Status.ErrorDeleted.ToString(); } return(userInfo); }
/// <summary> /// 设置密码 /// </summary> /// <param name="userId">被设置的用户主键</param> /// <param name="newPassword">新密码</param> /// <param name="unlock">解除锁定</param> /// <param name="autoAdd">数据缺少自动补充登录信息</param> /// <returns>影响行数</returns> public virtual int SetPassword(string userId, string newPassword, bool?unlock = null, bool?autoAdd = null, bool modifyRecord = true) { int result = 0; // 密码强度检查 /* * if (BaseSystemInfo.CheckPasswordStrength) * { * if (password.Length == 0) * { * this.StatusCode = StatusCode.PasswordCanNotBeNull.ToString(); * return result; * } * } */ string encryptPassword = newPassword; string salt = string.Empty; // 加密密码 if (BaseSystemInfo.ServerEncryptPassword) { salt = BaseRandom.GetRandomString(20); encryptPassword = this.EncryptUserPassword(newPassword, salt); } // 设置密码字段 List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldUserPassword, encryptPassword)); // 需要重新登录才可以,防止正在被人黑中,阻止已经在线上的人 parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldOpenId, Guid.NewGuid().ToString("N"))); if (BaseSystemInfo.ServerEncryptPassword) { parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldSalt, salt)); } parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldChangePasswordDate, DateTime.Now)); if (unlock.HasValue && unlock.Value == true) { parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldLockStartDate, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldLockEndDate, null)); } BaseUserLogOnManager userLogOnManager = new BaseUserLogOnManager(this.DbHelper, this.UserInfo); result = userLogOnManager.SetProperty(new KeyValuePair <string, object>(BaseUserLogOnEntity.FieldId, userId), parameters); if (result == 0 && autoAdd.HasValue && autoAdd.Value == true) { BaseUserLogOnEntity userLogOnEntity = new BaseUserLogOnEntity(); userLogOnEntity.Id = userId; userLogOnEntity.ChangePasswordDate = DateTime.Now; userLogOnEntity.UserPassword = encryptPassword; userLogOnEntity.Salt = salt; userLogOnEntity.Enabled = 1; userLogOnManager.AddObject(userLogOnEntity); result = 1; } // 2015-12-09 吉日嘎拉 增加日志功能、谁什么时候设置了谁的密码? if (modifyRecord) { var record = new BaseModifyRecordEntity(); record.TableCode = BaseUserLogOnEntity.TableName.ToUpper(); record.TableDescription = "用户登录信息表"; record.ColumnCode = BaseUserLogOnEntity.FieldUserPassword; record.ColumnDescription = "用户密码"; record.RecordKey = userId; record.NewValue = "设置密码"; // record.OldValue = ""; if (this.UserInfo != null) { record.IPAddress = this.UserInfo.IPAddress; record.CreateUserId = this.UserInfo.Id; record.CreateOn = DateTime.Now; } BaseModifyRecordManager modifyRecordManager = new Business.BaseModifyRecordManager(this.UserInfo, BaseUserEntity.TableName + "_Log"); modifyRecordManager.Add(record, true, false); } if (result == 1) { this.StatusCode = Status.SetPasswordOK.ToString(); // 调用扩展 if (BaseSystemInfo.OnInternet && BaseSystemInfo.ServerEncryptPassword) { // AfterSetPassword(userId, salt, password); } } else { // 数据可能被删除 this.StatusCode = Status.ErrorDeleted.ToString(); } return(result); }
/// <summary> /// Returns a random double precision floating-point number in range [0.0, 1.0[. /// </summary> /// <returns>Number in range [0.0, 1.0[.</returns> public static double Double() { return(BaseRandom.NextDouble()); }
/// <summary> /// Fills a array of bytes with random numbers. /// </summary> /// <param name="buffer">An array of bytes to receive random numbers.</param> public static void Bytes(byte[] buffer) { BaseRandom.NextBytes(buffer); }
/// <summary> /// Returns a random number between and including min and max /// </summary> /// <param name="min"></param> /// <param name="max"></param> /// <returns></returns> public int Next(int min, int max) { return(min == max ? min : BaseRandom.Next(min, max)); }
/// <summary> /// 忘记密码按电子邮件获取 /// </summary> /// <param name="taskId">任务标识</param> /// <param name="userInfo">用户信息</param> /// <param name="userName">用户名</param> /// <param name="email">电子邮件</param> /// <returns>成功</returns> public bool GetPasswordByEmail(string taskId, BaseUserInfo userInfo, string userName, string email) { bool result = false; BaseUserContactManager manager = new BaseUserContactManager(); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); if (!string.IsNullOrEmpty(email)) { parameters.Add(new KeyValuePair <string, object>(BaseUserContactEntity.FieldEmail, email)); } string id = manager.GetId(parameters); if (!string.IsNullOrEmpty(id)) { BaseUserManager userManager = new BaseUserManager(); bool userNameOK = true; BaseUserEntity userEntity = userManager.GetObject(id); if (!string.IsNullOrEmpty(userName)) { if (!string.IsNullOrEmpty(userEntity.UserName) && !userEntity.UserName.Equals(userName)) { userNameOK = false; userInfo = null; } } if (userNameOK) { userInfo = userManager.ConvertToUserInfo(userEntity); } } if (!string.IsNullOrEmpty(id)) { string userPassword = string.Empty; if (BaseSystemInfo.CheckPasswordStrength) { userPassword = BaseRandom.GetRandomString(8).ToLower(); } else { userPassword = BaseRandom.GetRandomString(8).ToLower(); // Random random = new System.Random(); // userPassword = random.Next(100000, 999999).ToString(); } // 邮件内容 SmtpClient smtpClient = new SmtpClient(BaseSystemInfo.MailServer); smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(BaseSystemInfo.MailUserName, BaseSystemInfo.MailPassword); // 指定如何处理待发的邮件 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; string mailTitle = BaseSystemInfo.SoftFullName + "忘记密码"; string mailBody = "您的新密码为:" + userPassword + " " + System.Environment.NewLine + "<br/> " + System.Environment.NewLine + BaseSystemInfo.SoftFullName + "访问地址: http://www.zto.cn/"; // 读取模板文件 string file = BaseSystemInfo.StartupPath + "\\Forgot.Mail.txt"; if (System.IO.File.Exists(file)) { mailBody = System.IO.File.ReadAllText(file, Encoding.UTF8); mailBody = mailBody.Replace("{Realname}", userInfo.RealName); mailBody = mailBody.Replace("{UserPassword}", userPassword); } // 发送邮件 MailMessage mailMessage = new MailMessage(BaseSystemInfo.MailUserName, email, mailTitle, mailBody); mailMessage.BodyEncoding = Encoding.Default; mailMessage.IsBodyHtml = true; smtpClient.Send(mailMessage); BaseUserManager userManager = new BaseUserManager(userInfo); userManager.SetPassword(userInfo.Id, userPassword); userManager.GetStateMessage(); if (userManager.StatusCode == Status.SetPasswordOK.ToString()) { result = true; } else { result = false; } } return(result); }
public int InputQuestions(int UsersId = 1) { try { var result = 0; HttpPostedFileBase file = Request.Files[0]; if (null != file) { IWorkbook wk = null; //.xlsx 应该XSSFWorkbook workbook = new XSSFWorkbook(file); 而xls应该用 HSSFWorkbook workbook = new HSSFWorkbook(file); var f = file.FileName.Substring(file.FileName.LastIndexOf('.')); if (f.Equals(".xls")) { //把xls文件中的数据写入wk中 wk = new HSSFWorkbook(file.InputStream); } else { //把xlsx文件中的数据写入wk中 wk = new XSSFWorkbook(file.InputStream); } ISheet sheet = wk.GetSheetAt(0); IRow row = null;//读取当前行数据 List <Questions> list = new List <Questions>(); //LastRowNum 是当前表的总行数-1 for (int k = 1; k <= sheet.LastRowNum; k++) { row = sheet.GetRow(k);//读取当前行数据 Questions model = new Questions(); if (row != null) { //LastRowNum 是当前表的总行数-1 for (int j = 0; j < row.LastCellNum; j++) { if (j == 0) { continue; } //读取该行的第j列数据 model.QuestionNum = BaseRandom.GenerateIntID().ToString(); var collegeName = row.GetCell(2).ToString(); var strColleges = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Colleges")); var listColleges = JsonConvert.DeserializeObject <List <Colleges> >(strColleges); var collegeId = listColleges.Where(m => m.CollegeName.Equals(collegeName)).FirstOrDefault().CollegeId; model.CollegeId = collegeId; var majorName = row.GetCell(3).ToString(); var strMajors = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Majors")); var listMajors = JsonConvert.DeserializeObject <List <Majors> >(strMajors); var majorId = listMajors.Where(m => m.MajorName.Equals(majorName)).FirstOrDefault().MajorId; model.MajorId = majorId; var stageName = row.GetCell(4).ToString(); var strStages = HttpUtility.UrlDecode(CookiesHelper.GetCookie("Stages")); var listStages = JsonConvert.DeserializeObject <List <Stages> >(strStages); var stageId = listStages.Where(m => m.StageName.Equals(stageName)).FirstOrDefault().StageId; model.StageId = stageId; var typeName = row.GetCell(5).ToString(); if (typeName == "单选题") { model.TypeId = Convert.ToInt32(TypeEnums.单选题); } if (typeName == "多选题") { model.TypeId = Convert.ToInt32(TypeEnums.多选题); } if (typeName == "判断题") { model.TypeId = Convert.ToInt32(TypeEnums.判断题); } model.QuestionTitle = row.GetCell(6).ToString(); if (row.LastCellNum != 12) { model.OptionA = " "; model.OptionB = " "; model.OptionC = " "; model.OptionD = " "; model.Answer = row.GetCell(7).ToString(); } else { model.OptionA = row.GetCell(7).ToString(); model.OptionB = row.GetCell(8).ToString(); model.OptionC = row.GetCell(9).ToString(); model.OptionD = row.GetCell(10).ToString(); model.Answer = row.GetCell(11).ToString(); } model.CreateDate = DateTime.Now; } list.Add(model); } } if (iQuestions_BLL.Add(list)) { result = 1; } } return(result); } catch (Exception ex) { ErrorLog.WriteLog(ex); return(0); } }