Ejemplo n.º 1
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            if (User == null && !UCommon.IsDevelopment)
            {
                string lxtByQueryString = CCheckIdentity.GetLxtByQueryString();
                string lxtByCookie      = CCheckIdentity.GetLxtByCookie();
                User = LoadUserInfo(lxtByQueryString, lxtByCookie);
            }
            var dic = actionContext.ControllerContext.RouteData.Values;

            if (User != null && !dic.ContainsKey("lx_user"))
            {
                dic.Add("lx_user", User);
            }
            //处理未登录的情况
            var controllerName = dic["controller"].ToString();
            var requestMethod  = actionContext.Request.Method.Method;

            if (IsDoNotNeedLoginController(controllerName, requestMethod))
            {
                return;
            }
            if (User != null && User.UserId > 0)
            {
                return;
            }
            actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
            {
                Content = new StringContent(JsonConvert.SerializeObject(new ResultView(HttpStatusCode.Unauthorized, null, "请先登录")))
            };
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 加载用户信息
        /// </summary>
        /// <param name="lxtQs"></param>
        /// <param name="lxtCookie"></param>
        /// <returns></returns>
        private CUser LoadUserInfo(string lxtQs, string lxtCookie)
        {
            bool isLogin = CCheckIdentity.LoginByLxt(lxtQs, lxtCookie, CCommon.IsSpider(CUser.GetUserUA()), out var userid, out var lxt, out _);

            return(isLogin ? new CUser(userid, lxt) : new CUser(0, ""));
        }