/// <summary> /// 验证用户登陆,并记录Session /// </summary> /// <param name="strUserName">输入的登陆名</param> /// <param name="strPassCode">输入的登陆密码明文</param> /// <returns>0:用户名密码为空;1:用户名不存在;2:用户密码错误;3:非内部用户;4:成功登陆</returns> public byte checkUser(string strUserName, string strPassCode, bool rememberLoginName = false, bool rememberUser = false) { byte nResult = 4; //如果接收的用户名和密码为空,返回0 if (String.IsNullOrEmpty(strUserName) || String.IsNullOrEmpty(strPassCode)) { nResult = 0; } else { //创建一个User实例 MemberUser user = new MemberUser(); //验证用户名 try { user = (from u in dbEntity.MemberUsers.Include("Role") where u.Deleted == false && u.Ustatus == (byte)ModelEnum.UserStatus.VALID && u.LoginName == strUserName select u).Single(); } catch (Exception) { user = null; nResult = 1; } if (user != null) { string _passcode = CommonHelper.EncryptDES(strPassCode, user.SaltKey);//加密密码密文 if (user.Passcode != _passcode)//验证密码密文 { nResult = 2; } else if (!oGeneralBLL.IsInternal(user)) { nResult = 3; } else { //登陆成功,记录session if (user.Role.Code == "Supervisor") CurrentSession = new SessionData(user.Gid, true, true, user.Culture.Culture, oGeneralBLL.GetDefaultCurrency(user.OrgID),user.OrgID); else CurrentSession = new SessionData(user.Gid, false, true, user.Culture.Culture, oGeneralBLL.GetDefaultCurrency(user.OrgID),user.OrgID); //记录cookie CookieData oCookieData = new CookieData(); DateTimeOffset tdLastLoginTime = DateTimeOffset.Parse(DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss")); user.LastLoginTime = tdLastLoginTime;//记录用户登陆时间 dbEntity.SaveChanges(); oCookieData.LastLoginTime = CommonHelper.EncryptDES(tdLastLoginTime.ToString(), user.SaltKey);//加密保存最后登陆时间 oCookieData.UserID = user.Gid; byte isRemember = 0; if (rememberUser == true) isRemember = 2; else if (rememberLoginName == true) isRemember = 1; oCookieData.Remember = isRemember; CurrentCookie = oCookieData; //记录用户登录日志 oEventBLL.WriteEvent("用户:" + user.LoginName + "登陆"); } } } return nResult; }
/// <summary> /// 用户注销 /// </summary> /// <returns></returns> public ActionResult Logoff() { //记录用户登录日志 oEventBLL.WriteEvent("用户:" + CurrentSession.UserID + "注销"); CurrentSession = new SessionData(); CurrentCookie = new CookieData(); return RedirectToAction("Index", "Home"); }