Esempio n. 1
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            ICallerService callerService = new CallerService();
            Caller caller = callerService.GetCallers().First();
            Member member = new Member();
            string error = string.Empty;
            string token = string.Empty;
            DateTime validTime = DateTime.MinValue;
            bool success = new MemberLogin().Execute(txtName.Text,
                txtPwd.Text,
                caller,
                DateTime.Now,
                ref member,
                ref error,
                ref validTime,
                ref token);

            if (!success)
            {
                Response.Write("登陆失败:" + error);
                return;
            }

            Response.Cookies["AccessToken"].Value = token;
            Response.Cookies["AccessToken"].Expires = validTime;
            Response.Cookies["AccessToken"].Domain = System.Configuration.ConfigurationManager.AppSettings["CookieDomain"];

            Response.Redirect(Request.Params["returnUrl"]);
        }
Esempio n. 2
0
        public void Redis_Set()
        {
            int validSeconds = 20;

            for (int i = 0; i < 10; i++)
            {
                Member m = new Member()
                {
                    MemberId = "123456",
                    //Vno = "V654321",
                    //MemberLevel = "I",
                    Mobile = "1366155555",
                    Name = "washing",
                    Point = 9999

                };

                var vInfo = new VerifyInfo();
                //vInfo.AccessToken = Guid.NewGuid().ToString();
                vInfo.AccessToken = i.ToString();
                vInfo.Caller = "Web";
                vInfo.RefreshToken = string.Empty;
                vInfo.ValidDate = DateTime.Now.AddSeconds(validSeconds);
                vInfo.VerifiedMember = m;

                RedisHelper.SetString(string.Format(RedisConstant.REDIS_KEY_ACCESS_TOKEN, vInfo.AccessToken), JsonConvert.SerializeObject(vInfo), validSeconds);
            }

        }
Esempio n. 3
0
        public void init()
        {
            service = new VerifyService();

            int validSeconds = 20;

            var m = new Member()
            {
                MemberId = "123456",
                //Vno = "V654321",
                //MemberLevel = "I",
                Mobile = "1366155555",
                Name = "washing",
                Point = 9999

            };

            vInfo = new VerifyInfo();
            vInfo.MemberId = m.MemberId;
            vInfo.Caller = "Web";
            vInfo.RefreshToken = string.Empty;
            vInfo.ValidDate = DateTime.Now.AddSeconds(validSeconds);
            vInfo.ValidMinutes = 1;
            vInfo.VerifiedMember = m;
        }
Esempio n. 4
0
        public bool Execute(string pName,
            string pPassword,
            Caller pCaller,
            DateTime pLoginTime,
            ref Member pMemberInfo,
            ref string pErrorMsg,
            ref DateTime ValidTime,
            ref string pAccessToken)
        {
            if ((DateTime.Now - pLoginTime).TotalMinutes >= 5)
            {
                pErrorMsg = "无效请求";
                return false;
            }

            #region 获取登陆信息
            int result = 0;
            string extCardNo = null;
            string vno = null;
            PersonMember person = null;
            pErrorMsg = string.Empty;

            if (!CallLoginCheck(pName, pPassword, ref pErrorMsg, ref result, ref person, ref vno, ref extCardNo)) return false;

            try
            {
                pMemberInfo = ConvertToMemberInfo(person, vno);
            }
            catch (Exception exp)
            {
                HZLogger.Error(exp);
                pErrorMsg = "用户名或密码无效";
                return false;
            }

            pMemberInfo.DefaultVCardNo = vno;
            pMemberInfo.DefaultExtCardNo = extCardNo;
            if (pMemberInfo.MemberLevelID == "P") pMemberInfo.CompanyMemberType = (int)CompanyMemberType.NoSet;
            else pMemberInfo.CompanyMemberType = result == 2 ? (int)CompanyMemberType.User : (int)CompanyMemberType.Admin;
            #endregion

            #region 缓存认证信息至redis
            var verifyInfo = new VerifyInfo();
            verifyInfo.VerifiedMember = pMemberInfo;
            verifyInfo.Caller = pCaller.CallerID;
            verifyInfo.PrivateKey = pCaller.PrivateKey;
            verifyInfo.RefreshToken = string.Empty;
            verifyInfo.ValidMinutes = pCaller.UserTokenValidTime;
            verifyInfo.ValidDate = DateTime.Now.AddSeconds(verifyInfo.ValidMinutes);
            ValidTime = verifyInfo.ValidDate;


            StatusCode status = _verifyService.SetVerifyInfo(verifyInfo, pLoginTime);
            if (status.Code == (int)VerifyStatus.Success)
            {
                pAccessToken = verifyInfo.AccessToken;
                return true;
            }
            else
            {
                pErrorMsg = status.Message;
                return false;
            }
            #endregion
        }
Esempio n. 5
0
        private Member ConvertToMemberInfo(PersonMember pMember, string pDefaultVCardNo)
        {
            if (pMember == null)
                return null;

            MemberLevel memberLevel = MemberLevel.Parse(pMember.MemberLevel);

            var memberInfo = new Member
            {
                Address = pMember.Address,
                BDCardNo = pMember.BDCardNo,
                Birthday = pMember.Birthday != null ? pMember.Birthday.Value : DateTime.MinValue,
                Caller = pMember.Caller,
                CityCode = pMember.CityCode,
                CountryCode = pMember.CountryCode,
                CreditPoint = pMember.CreditPoint.HasValue ? pMember.CreditPoint.Value : 0.0m,
                CreditValue = pMember.CreditValue.HasValue ? pMember.CreditValue.Value : 0.0m,
                Email = pMember.Email,
                ExpireTime = pMember.ExpireTime.HasValue ? pMember.ExpireTime.Value : DateTime.MinValue,
                ExtraFlags = pMember.ExtraFlags,
                Fax = pMember.Fax,
                Gender = pMember.Gender,
                MemberId = pMember.MemberID,
                MemberLevelID = memberLevel.ID,
                MemberLevelDesc = pMember.IsForever ? "永久" + memberLevel.Description
                                                    : memberLevel.Description,
                IsForever = pMember.IsForever,
                Mobile = pMember.Mobile,
                Phone = pMember.Phone,
                Point = pMember.Point.HasValue ? pMember.Point.Value : 0.0m,
                ProvinceCode = pMember.ProvinceCode,
                RegisterTime = pMember.RegisterTime.HasValue ? pMember.RegisterTime.Value : DateTime.MinValue,
                SourceChannel = pMember.SourceChannel,
                SourceDetailCode = pMember.SourceDetailCode,
                SourceType = pMember.SourceType,
                StatusCode = pMember.StatusCode,
                Town = pMember.Town,
                Value = pMember.Value.HasValue ? pMember.Value.Value : 0.0m,
                WebName = pMember.WebName,
                WebSite = pMember.WebSite,
                ZipCode = pMember.ZipCode,
                Name = pMember.Name,
                IDNo = pMember.IDNo,
                IDType = pMember.IDType,
                DefaultVCardNo = string.IsNullOrEmpty(pDefaultVCardNo) ? GetVnoWithMemberId(pMember.MemberID) : pDefaultVCardNo//此接口无法获取VNO;调用CRM的CardService获取补充
            };

            //特殊状态处理
            string statusCode = string.IsNullOrEmpty(pMember.StatusCode) ? "" : pMember.StatusCode.Trim();
            //如果登陆失败获取错误原因
            string loginMsg = TryGetLoginFailedMessage(statusCode, pMember.MemberLevel);
            if (string.IsNullOrEmpty(loginMsg))
            {
                memberInfo.LoginSuccess = true;
                memberInfo.LoginMsg = string.Empty;
            }
            else
            {
                memberInfo.LoginSuccess = false;
                memberInfo.LoginMsg = loginMsg;
            }
            return memberInfo;
        }