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"]); }
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); } }
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; }
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 }
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; }