/// <summary> /// 自动登录处理 /// </summary> /// <param name="sysId">系统编号</param> /// <param name="companyId">公司编号</param> /// <param name="userId">用户编号</param> /// <param name="username">用户账号</param> /// <param name="uInfo">登录用户信息</param> private static void AutoLogin(string sysId, string companyId, string userId, string username, out MUserInfo uInfo) { uInfo = null; IUserLogin dal = new DUserLogin(); MSysDomain domainInfo = GetDomain(); if (domainInfo == null || domainInfo.SysId != sysId || domainInfo.CompanyId != companyId) { uInfo = null; return; } uInfo = dal.Login(userId); if (uInfo == null) { return; } if (uInfo.Username != username) { uInfo = null; return; } if (uInfo.CompanyId != companyId) { uInfo = null; return; } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null) { uInfo = null; return; } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null) { uInfo = null; return; } if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常) { uInfo = null; return; } uInfo.SysId = sysId; uInfo.LoginTime = uInfo.LastLoginTime.HasValue ? uInfo.LastLoginTime.Value : DateTime.Now; dal.LoginLogwr(uInfo, EyouSoft.Model.EnumType.ComStructure.UserLoginType.自动登录); SetUserCache(uInfo); }
/// <summary> /// 用户登录,返回1登录成功 /// </summary> /// <param name="companyId">系统公司编号</param> /// <param name="username">用户名</param> /// <param name="pwdInfo">登录密码</param> /// <param name="uInfo">登录用户信息</param> /// <returns></returns> public static int Login(string companyId, string username, MPasswordInfo pwdInfo, out MUserInfo uInfo) { IUserLogin dal = new DUserLogin(); uInfo = null; if (string.IsNullOrEmpty(companyId)) { return(0); } if (string.IsNullOrEmpty(username)) { return(-1); } if (pwdInfo == null || string.IsNullOrEmpty(pwdInfo.NoEncryptPassword)) { return(-2); } MSysDomain domainInfo = GetDomain(); if (domainInfo == null) { return(-3); } uInfo = dal.Login(companyId, username, pwdInfo); //通过用户名及密码验证失败,判断登录密码是否为客服服务密码,如果是将绕过密码验证 //使用客服密码登录时登录日志做客服登录标识 EyouSoft.Model.EnumType.ComStructure.UserLoginType loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录; if (uInfo == null) { if (System.Configuration.ConfigurationManager.AppSettings["KeFuPwd"] == pwdInfo.MD5Password) { uInfo = dal.Login(companyId, username); loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录; } if (uInfo == null) { return(-4); } } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null) { uInfo = null; return(-5); } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null) { uInfo = null; return(-6); } if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常) { uInfo = null; return(-7); } var setting = GetComSetting(companyId); if (IsLoginLimit(uInfo.UserType)) { switch (setting.UserLoginLimitType) { case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.None: break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Earliest: if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录 && uInfo.OnlineStatus == EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online) { uInfo = null; return(-8); } break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Latest: break; default: break; } } uInfo.SysId = domainInfo.SysId; uInfo.LoginTime = DateTime.Now; if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录) { uInfo.OnlineStatus = EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online; uInfo.OnlineSessionId = Guid.NewGuid().ToString(); } dal.LoginLogwr(uInfo, loginType); SetUserCache(uInfo); SetCookies(uInfo); if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录) { SetKeFuLoginCookies(); } return(1); }