예제 #1
0
        public async Task <MessageModel <PageModel <sysUserInfo> > > Get(int page = 1, string key = "")
        {
            var data          = new MessageModel <PageModel <sysUserInfo> >();
            int intTotalCount = 50;
            int TotalCount    = 0;
            int PageCount     = 1;
            List <sysUserInfo> sysUserInfos = new List <sysUserInfo>();

            sysUserInfos = await _sysUserInfoServices.Query(a => a.tdIsDelete != true && a.uStatus >= 0);

            if (!string.IsNullOrEmpty(key))
            {
                sysUserInfos = sysUserInfos.Where(t => (t.uLoginName != null && t.uLoginName.Contains(key)) || (t.uRealName != null && t.uRealName.Contains(key))).ToList();
            }


            //筛选后的数据总数
            TotalCount = sysUserInfos.Count;
            //筛选后的总页数
            PageCount = (Math.Ceiling(TotalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt();

            sysUserInfos = sysUserInfos.OrderByDescending(d => d.uID).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList();


            var allUserRoles = await _userRoleServices.Query(d => d.IsDeleted == false);

            var allRoles = await _roleServices.Query(d => d.IsDeleted == false);

            foreach (var item in sysUserInfos)
            {
                item.uLoginPWD = "no see me";
                if (item != null)
                {
                    item.RID      = (allUserRoles.Where(d => d.UserId == item.uID).FirstOrDefault()?.RoleId).ObjToInt();
                    item.RoleName = allRoles.Where(d => d.Id == item.RID).FirstOrDefault()?.Name;
                }
            }

            return(new MessageModel <PageModel <sysUserInfo> >()
            {
                msg = "获取成功",
                success = TotalCount >= 0,
                response = new PageModel <sysUserInfo>()
                {
                    page = page,
                    pageCount = PageCount,
                    dataCount = TotalCount,
                    data = sysUserInfos,
                }
            });
        }
예제 #2
0
        public async Task <object> GetJwtToken3(string name = "", string pass = "")
        {
            string jwtStr = string.Empty;

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass))
            {
                return(new JsonResult(new
                {
                    Status = false,
                    message = "用户名或密码不能为空"
                }));
            }

            pass = MD5Helper.MD5Encrypt32(pass);

            var user = await _sysUserInfoServices.Query(d => d.uLoginName == name && d.uLoginPWD == pass);

            if (user.Count > 0)
            {
                var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass);

                //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
                var claims = new List <Claim> {
                    new Claim(ClaimTypes.Name, name),
                    new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().uID.ToString()),
                    new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString())
                };
                claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));

                //用户标识
                var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
                identity.AddClaims(claims);

                var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement);
                return(new JsonResult(token));
            }
            else
            {
                return(new JsonResult(new
                {
                    success = false,
                    message = "认证失败"
                }));
            }
        }