/// <summary> /// 解码 /// </summary> /// <param name="token"></param> /// <returns></returns> public UserIdSessionData Decrypt(string token) { //验证用户信息 UserIdSessionData sessionData = null; try { sessionData = SessionKeyHelper.Decrypt(token); } catch { Logger.Error(String.Format("{0}解密失败 ", token)); } return(sessionData); }
//public List<Coupon> GetAppliedCoupons() //{ // List<Coupon> coupons = new List<Coupon>(); // foreach(CartCoupon cc in this.CartCouponCollectionByCartId) // { // coupons.Add(cc.UpToCouponByCouponId); // } // return coupons; //} public decimal GetTotal() { SessionKeyHelper sessionKeyHelper = new SessionKeyHelper(this.StoreId.GetValueOrDefault(-1)); CheckoutOrderInfo checkoutOrderInfo = HttpContext.Current.Session[sessionKeyHelper.CheckoutOrderInfo] as CheckoutOrderInfo; if (checkoutOrderInfo != null) { return(checkoutOrderInfo.Total); } else { checkoutOrderInfo = new CheckoutOrderInfo() { Cart = this }; return(checkoutOrderInfo.Total); } }
protected override object GetModelInstance(string token) { if (String.IsNullOrWhiteSpace(token)) { return(null); } var userSessionData = SessionKeyHelper.Decrypt(token); if (userSessionData == null) { return(null); } if (userSessionData.Expired) { return(null); } try { return(this._userService.Get(Int32.Parse(userSessionData.UserId))); } catch (Exception ex) { if (HttpContext.Current != null) { Logger.Error("httpurl:" + HttpContext.Current.Request.Url.ToString()); } while (ex != null) { Logger.Error(ex); ex = ex.InnerException; } throw new ArgumentException("在binder时获取用户信息失败"); } }
public RestfulResult Detail(UpdateCustomerRequest request, int?authuid, UserModel authUser) { request.AuthUid = authuid.Value; request.AuthUser = authUser; if (String.Compare(request.Method, DefineRestfulMethod.Update, StringComparison.OrdinalIgnoreCase) == 0) { //更新 return(new RestfulResult { Data = this._customerService.Update(request) }); } var linq = _customerRepo.Get(u => u.Id == authUser.Id) .GroupJoin(_resourceRepo.Get(r => r.SourceType == (int)SourceType.CustomerThumbBackground), o => o.Id, i => i.SourceId, (o, i) => new { C = o, RB = i }) .GroupJoin(_useraccountRepo.Get(ua => ua.Status != (int)DataStatus.Deleted), o => o.C.Id, i => i.User_Id, (o, i) => new { C = o.C, RB = o.RB, UA = i }); var response = from l in linq.ToList() select new CustomerInfoResponse().FromEntity <CustomerInfoResponse>(l.C , c => { var bgThum = l.RB.FirstOrDefault(); if (bgThum != null) { c.BackgroundLogo_r = new ResourceInfoResponse().FromEntity <ResourceInfoResponse>(bgThum); } c.CountsFromEntity(l.UA); c.Token = SessionKeyHelper.Encrypt(authUser.Id.ToString(CultureInfo.InvariantCulture)); });; return(new RestfulResult { Data = new ExecuteResult <CustomerInfoResponse>(response.FirstOrDefault()) }); }
public string Encrypt(string userid) { return(SessionKeyHelper.Encrypt(userid)); }
/// <summary> /// 加码 /// </summary> /// <param name="data"></param> /// <returns></returns> public string Encrypt(UserIdSessionData data) { return(SessionKeyHelper.Encrypt(data)); }
public virtual void ExecActionExecuting(ActionExecutingContext filterContext) { //获取SessionKey var httpContext = filterContext.HttpContext; var token = httpContext.Request[Define.Token]; if (String.IsNullOrEmpty(token) && !_holdon) { //filterContext.HttpContext.ClearError(); filterContext.Result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.ClientError, Message = String.Format("{0}为空", Define.Token) } }; return; //return false; } //验证用户信息 try { _sessionData = SessionKeyHelper.Decrypt(token); } catch { _log.Error(String.Format("{0}解密失败 ", token)); } // 解密失败返回结果 if (_sessionData == null && !_holdon) { filterContext.Result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.Unauthorized, Message = "您的身份验证失败." } }; return; } // Session过期 if (_sessionData != null && _sessionData.Expired && !_holdon) { filterContext.Result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.Unauthorized, Message = "您已经很长时候没有使用啦,为保证你的账户安全,请重新登录." } }; return; } //TODO:可以通过ActionDescriptor获取参数的类型,这里约定好就可以了,没有必要去那样做 var output = 0; if (_sessionData != null) { Int32.TryParse(_sessionData.UserId, out output); } if (_sessionData != null) { this._authUser = ServiceLocator.Current.Resolve <IUserService>().Get(Int32.Parse(_sessionData.UserId)); if (this._authUser == null) { filterContext.Result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.Unauthorized, Message = "您的身份验证失败." } }; return; } filterContext.ActionParameters[Define.AuthUser] = this._authUser; ////// 设置参数userId的值 ////httpContext.Request. httpContext.Request.RequestContext.RouteData.Values.Add(Define.AuthUserId, output.ToString(CultureInfo.InvariantCulture)); //httpContext.Request.Params.Add(Define.AuthUserId, output.ToString(CultureInfo.InvariantCulture)); filterContext.ActionParameters[Define.AuthUserId] = output; } else { filterContext.ActionParameters[Define.AuthUser] = null; filterContext.ActionParameters[Define.AuthUserId] = null; } ExecActionRoleAuthorizeing(filterContext); }