Пример #1
0
        public JsonResult PhoneLogin([FromForm] string phone, [FromForm] string code)
        {
            DataResult dr = new DataResult();

            try
            {
                DataResult dataResult = ExaminePhoneAndCode(phone, code);

                if (dataResult.code != "200")
                {
                    return(Json(dataResult));
                }

                UserEntity userEntity = userBLL.GetByPhone(phone);

                if (userEntity == null)
                {
                    int rows = userBLL.CreateToPhone(phone);
                }

                PhoneCodeBLL phoneCodeBLL = new PhoneCodeBLL();
                phoneCodeBLL.Delete(phone);
                UserEntity user = userBLL.GetByPhone(phone);

                UserTokenBLL    userTokenBLL    = new UserTokenBLL();
                UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId);
                UserTokenEntity userToken       = new UserTokenEntity();

                if (userTokenEntity == null)
                {
                    userToken = userTokenBLL.Create(user.userId);
                }
                else
                {
                    userToken = userTokenBLL.Update(userTokenEntity);
                }

                LoginResult loginResult = new LoginResult();
                loginResult.token      = userToken.token;
                loginResult.userEntity = user;

                dr.code = "200";
                dr.data = loginResult;
            }
            catch (Exception ex)
            {
                dr.code = "999";
                dr.msg  = ex.Message;
            }

            return(Json(dr));
        }
Пример #2
0
        public JsonResult PhonePasswordLogin([FromForm] string phone, [FromForm] string password)
        {
            DataResult dr = new DataResult();

            try
            {
                if (string.IsNullOrWhiteSpace(phone) || phone.Length != 11)
                {
                    dr.code = "201";
                    dr.msg  = "手机号码错误";
                    return(Json(dr));
                }
                UserEntity user = userBLL.GetByPhoneAndPassword(phone, Helper.DataEncrypt.DataMd5(password));

                if (user == null)
                {
                    dr.code = "201";
                    dr.msg  = "手机号码或密码错误错误";
                    return(Json(dr));
                }

                UserTokenBLL    userTokenBLL    = new UserTokenBLL();
                UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId);
                UserTokenEntity userToken       = new UserTokenEntity();

                if (userTokenEntity == null)
                {
                    userToken = userTokenBLL.Create(user.userId);
                }
                else
                {
                    userToken = userTokenBLL.Update(userTokenEntity);
                }

                LoginResult loginResult = new LoginResult();
                loginResult.token      = userToken.token;
                loginResult.userEntity = user;

                dr.code = "200";
                dr.data = loginResult;
            }
            catch (Exception ex)
            {
                dr.code = "999";
                dr.msg  = ex.Message;
            }

            return(Json(dr));
        }
Пример #3
0
        /// <summary>
        /// 根据token获取个人信息
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        protected UserEntity GetUserByToken(string token)
        {
            if (!string.IsNullOrWhiteSpace(token))
            {
                UserBLL         userBLL         = new UserBLL();
                UserTokenBLL    userTokenBLL    = new UserTokenBLL();
                UserTokenEntity userTokenEntity = userTokenBLL.GetByToken(token);

                UserEntity userEntity = userBLL.GetById(userTokenEntity.userId);

                return(userEntity);
            }
            else
            {
                return(null);
            }
        }
Пример #4
0
        /// <summary>
        /// 获取菜单
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        private BaseDataInfo GetMenu(BaseDataInfo info)
        {
            if (string.IsNullOrEmpty(info.Token))
            {
                info.Result  = false;
                info.ErrCode = "0x00000000";
                info.Msg     = "未登录或登录超时";
                return(info);
            }
            long userId = new UserTokenBLL().GetUserFid(info.Token);

            if (userId == 0)
            {
                info.Result  = false;
                info.ErrCode = "0x00000000";
                info.Msg     = "未登录或登录超时";
                return(info);
            }
            List <MenuInfo> menus = new MenuBLL().GetAppMenus(userId);
            DataTable       dt    = new DataTable();

            dt.Columns.Add("Id");
            dt.Columns.Add("DIsplayOrder");
            dt.Columns.Add("MenuName");
            dt.Columns.Add("IconUrl");
            dt.Columns.Add("FunctionUrl");
            foreach (var menu in menus)
            {
                DataRow dr = dt.NewRow();
                dr["Id"]           = menu.Id;
                dr["DIsplayOrder"] = menu.DisplayOrder;
                if (info.Language.ToLower() == "zh-cn")
                {
                    dr["MenuName"] = menu.MenuNameCn;
                }
                else
                {
                    dr["MenuName"] = menu.MenuName;
                }
                dr["IconUrl"]     = menu.FavoritePic;
                dr["FunctionUrl"] = menu.LinkUrl;
                dt.Rows.Add(dr);
            }
            info.Tables.Add("Menu", dt);
            return(info);
        }
Пример #5
0
        public JsonResult WxLogin([FromForm] string code)
        {
            DataResult dr = new DataResult();

            try
            {
                if (string.IsNullOrWhiteSpace(code))
                {
                    dr.code = "201";
                    dr.msg  = "参数错误";
                    return(Json(dr));
                }

                //UserEntity userEntity = userBLL.GetById(10007);
                //userEntity.account = code;
                //userBLL.ActionDal.ActionDBAccess.Updateable(userEntity).ExecuteCommand();

                AccessTokenEntity accessTokenEntity = WeChat.LoginHelper.GetAccessToken(code);

                if (!string.IsNullOrWhiteSpace(accessTokenEntity.errcode))
                {
                    dr.code = "201";
                    dr.msg  = "获取AccessToken失败";
                    return(Json(dr));
                }

                AccessTokenEntity accessToken = WeChat.LoginHelper.GetRefreshToken(accessTokenEntity.refresh_token);

                if (!string.IsNullOrWhiteSpace(accessToken.errcode))
                {
                    dr.code = "201";
                    dr.msg  = "获取RefreshToken失败";
                    return(Json(dr));
                }

                AccessTokenEntity tokenEntity = WeChat.LoginHelper.SetExpiresIn(accessToken);

                if (string.IsNullOrWhiteSpace(tokenEntity.access_token) || string.IsNullOrWhiteSpace(tokenEntity.openid))
                {
                    dr.code = "201";
                    dr.msg  = "续期失败";
                    return(Json(dr));
                }

                WeChat.WxUserEntity wxUserEntity = WeChat.LoginHelper.GetWxUser(tokenEntity.access_token, tokenEntity.openid);

                if (string.IsNullOrWhiteSpace(wxUserEntity.openid) || !string.IsNullOrWhiteSpace(wxUserEntity.errcode))
                {
                    dr.code = "201";
                    dr.msg  = "获取用户信息失败";
                    return(Json(dr));
                }

                WxUserBLL wxUserBLL = new WxUserBLL();

                Entity.WxUserEntity wxUser = wxUserBLL.GetByOpenId(wxUserEntity.openid);

                if (wxUser == null)
                {
                    int rows = CreateWxUser(wxUserEntity);
                    if (rows > 0)
                    {
                        dr.code = "201";
                        dr.msg  = "创建用户失败";
                        return(Json(dr));
                    }
                }

                Entity.WxUserEntity wx = wxUserBLL.GetByOpenId(wxUserEntity.openid);

                UserEntity user = userBLL.GetById(wx.userId);

                UserTokenBLL    userTokenBLL    = new UserTokenBLL();
                UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId);
                UserTokenEntity userToken       = new UserTokenEntity();

                if (userTokenEntity == null)
                {
                    userToken = userTokenBLL.Create(user.userId);
                }
                else
                {
                    userToken = userTokenBLL.Update(userTokenEntity);
                }

                LoginResult loginResult = new LoginResult();
                loginResult.token      = userToken.token;
                loginResult.userEntity = user;

                dr.code = "200";
                dr.data = loginResult;
            }
            catch (Exception ex)
            {
                dr.code = "999";
                dr.msg  = ex.Message;
            }

            return(Json(dr));
        }
Пример #6
0
        /// <summary>
        /// 重写,登录过滤
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //获取跳过验证的标签如果有则跳过验证
            var isDefined = false;
            var controllerActionDescriptor = filterContext.ActionDescriptor as ControllerActionDescriptor;

            if (controllerActionDescriptor != null)
            {
                isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true)
                            .Any(a => a.GetType().Equals(typeof(SkipCheckLoginAttribute)));
            }

            if (isDefined)
            {
                return;
            }

            DataResult dr = new DataResult()
            {
                code = "300",
                msg  = "参数是必需的"
            };
            //dynamic rpas = filterContext.ActionArguments.First().Value as dynamic;

            var para = filterContext.HttpContext.Request.Form; //rpas["token"];
            //if (rpas == null)
            //{

            //    filterContext.Result = new JsonResult(dr);
            //    return;
            //}
            string token = para["token"];

            if (string.IsNullOrWhiteSpace(token))
            {
                dr.msg = "token为空!";
                filterContext.Result = new JsonResult(dr);
                return;
            }

            UserTokenBLL    userTokenBLL    = new UserTokenBLL();
            UserTokenEntity userTokenEntity = userTokenBLL.GetByToken(token);

            if (userTokenEntity == null)
            {
                dr.msg = "token错误!";
                filterContext.Result = new JsonResult(dr);
                return;
            }

            int difference = 10000;

            if (DateTime.Now.Subtract(userTokenEntity.createDate).Minutes > difference)
            {
                dr.msg = "token过期!";
                filterContext.Result = new JsonResult(dr);
                return;
            }

            userTokenBLL.UpdateTime(userTokenEntity);

            base.OnActionExecuting(filterContext);
        }