namespace BLL { using System; using System.Collections; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Data.Linq; using System.Web.Security; using System.Web.UI.WebControls; using Model; using BLL; using System.Collections.Generic; public static class Sys_UserService { public static (string, string) GetSingtrueImageUrl(string userId) { var result = (from a in Funs.DB.Sys_User join b in Funs.DB.Base_Unit on a.UnitId equals b.UnitId join c in Funs.DB.Base_UnitType on b.UnitTypeId equals c.UnitTypeId where a.UserId == userId select new { a.SigntrueImage, c.UnitTypeName }).FirstOrDefault(); if (result != null) { return (result.SigntrueImage, result.UnitTypeName); } return (null, null); } /// /// 用户登陆方法 /// /// 登陆名 /// 未加密密码 /// 记住我开关 /// 调用页面 /// 是否登陆成功 public static bool UserLogOn(string account, string password,string projectArea, bool rememberMe, System.Web.UI.Page page) { bool IsSuccess = false; var q = from y in Funs.DB.Sys_User where y.Account == account select y; List x = null; if (q.Count() > 0) { x = (from y in Funs.DB.Sys_User where y.Account == account && y.IsPost == true && y.Password == EncryptionPassword(password) select y).ToList(); if (x.Any()) { FormsAuthentication.SetAuthCookie(account, false); Model.Sys_User s = x.First(); s.LoginProjectArea = projectArea; page.Session[SessionName.CurrUser] = s; if (rememberMe) { System.Web.HttpCookie u = new System.Web.HttpCookie("UserInfo"); u["username"] = account; u["projectArea"] = projectArea; //u["password"] = null; // Cookies过期时间设置为一年. u.Expires = DateTime.Now.AddYears(1); //u.Secure = true; page.Response.Cookies.Add(u); } else { // 当选择不提交用户名时,Cookies过期时间设置为昨天. page.Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1); page.Response.Cookies["UserInfo"].Secure = true; } IsSuccess = true; // 如果登陆成功则数次置为0,锁定时间置空 UpdateErrorNum(q.First().UserId, 0); UpdateLockTime(q.First().UserId, null); //page.Application.Lock(); //page.Application["IsValiad"] = true; //page.Application.UnLock(); } else { int errorNum = q.First().ErrorNum != null ? q.First().ErrorNum.Value : 0; UpdateErrorNum(q.First().UserId, errorNum + 1); // 如果密码输入错误10次则账户锁定 if (errorNum + 1 == 10) { UpdateLockTime(q.First().UserId, DateTime.Now); } } } return IsSuccess; } /// /// 修改登陆错误次数 /// /// /// public static void UpdateErrorNum(string userId, int errorNum) { Model.HJGLDB db = Funs.DB; Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId); m.ErrorNum = errorNum; db.SubmitChanges(); } /// /// 修改登陆锁定时间 /// /// /// public static void UpdateLockTime(string userId, DateTime? lockTime) { Model.HJGLDB db = Funs.DB; Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId); m.LockTime = lockTime; db.SubmitChanges(); } /// /// 加密密码 /// /// 加密前的密码 /// 加密后的密码 public static string EncryptionPassword(string password) { return FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5"); } /// /// 获取用户信息 /// /// 用户Id /// 用户信息 public static Model.Sys_User GetUsersByUserId(string userId) { Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId); return m; } /// /// 获取用户账号是否存在 /// /// 用户id /// 账号 /// 项目ID /// 是否存在 public static bool IsExistUserAccount(string userId, string account) { bool isExist = false; var user = Funs.DB.Sys_User.FirstOrDefault(x => x.Account == account && x.UserId != userId); if (user != null) { isExist = true; } return isExist; } /// /// 根据用户Id查询所有用户的数量 /// /// 用户Id /// 用户的数量 public static int GetUserCount(string userId) { var q = (from x in Funs.DB.Sys_User where x.UserId == userId select x).ToList(); return q.Count(); } /// /// 根据用户获取密码 /// /// /// public static string GetPasswordByUserId(string userId) { Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId); return m.Password; } /// /// 根据用户ID获取名称 /// /// /// public static string GetUserNameByUserId(string userId) { string userName = string.Empty; Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId); if (m != null) { userName = m.UserName; } return userName; } /// /// 修改密码 /// /// /// public static void UpdatePassword(string userId, string password) { Model.HJGLDB db = Funs.DB; Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId); m.Password = EncryptionPassword(password); db.SubmitChanges(); } /// /// 增加人员信息 /// /// 人员实体 public static void AddUser(Model.Sys_User user) { Model.HJGLDB db = Funs.DB; Model.Sys_User newUser = new Model.Sys_User(); newUser.UserId = user.UserId; newUser.Account = user.Account; newUser.UserCode = user.UserCode; newUser.Password = user.Password; newUser.UserName = user.UserName; newUser.UnitId = user.UnitId; newUser.Depart = user.Depart; newUser.RoleIds = user.RoleIds; newUser.SigntrueImage = user.SigntrueImage; newUser.IsPost = user.IsPost; newUser.Email = user.Email; newUser.EmailPassword = user.EmailPassword; newUser.AllowLoginSystem = user.AllowLoginSystem; db.Sys_User.InsertOnSubmit(newUser); db.SubmitChanges(); } /// /// 修改人员信息 /// /// 人员实体 public static void UpdateUser(Model.Sys_User user) { Model.HJGLDB db = Funs.DB; Model.Sys_User newUser = db.Sys_User.FirstOrDefault(e => e.UserId == user.UserId); if (newUser != null) { newUser.Account = user.Account; newUser.UserCode = user.UserCode; newUser.UserName = user.UserName; newUser.UnitId = user.UnitId; newUser.Depart = user.Depart; newUser.RoleIds = user.RoleIds; newUser.IsPost = user.IsPost; newUser.SigntrueImage = user.SigntrueImage; newUser.Email = user.Email; if (!String.IsNullOrEmpty(user.EmailPassword)) { newUser.EmailPassword = user.EmailPassword; } newUser.AllowLoginSystem = user.AllowLoginSystem; db.SubmitChanges(); } } /// /// 根据人员Id删除一个人员信息 /// /// public static void DeleteUser(string userId) { Model.HJGLDB db = Funs.DB; Model.Sys_User user = db.Sys_User.FirstOrDefault(e => e.UserId == userId); var log = from x in Funs.DB.Sys_Log where x.UserId == userId select x; if (user != null) { if (log.Count() > 0) { db.Sys_Log.DeleteAllOnSubmit(log); } db.Sys_User.DeleteOnSubmit(user); db.SubmitChanges(); } } /// /// 根据单位主键获得用户 /// /// 单位主键 /// public static List GetUsersByUnitId(string unitId) { var q = (from x in Funs.DB.Sys_User where x.UnitId == unitId select x).ToList(); return q; } /// /// 查询所有在岗的用户 /// /// public static List GetUserList() { return (from x in Funs.DB.Sys_User where x.IsPost == true orderby x.UserName select x).ToList(); } public static Model.Sys_User GetUsersByUserName(string userName) { return Funs.DB.Sys_User.FirstOrDefault(e => e.UserName == userName); } } }