示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }