예제 #1
0
        public async Task <MessageModel <string> > GetJwtStrForNuxt(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了
            if (name == "admins" && pass == "admins")
            {
                TokenModelJwt tokenModel = new TokenModelJwt
                {
                    Uid  = 1,
                    Role = "Admin"
                };

                jwtStr = JwtHelper.IssueJwt(tokenModel);
                suc    = true;
            }
            else
            {
                var role = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass));

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

                if (role != null)
                {
                    if (user.Count > 0)
                    {
                        TokenModelJwt tokenModel = new TokenModelJwt {
                            Uid = user.FirstOrDefault().uID, Role = role
                        };
                        jwtStr = JwtHelper.IssueJwt(tokenModel);
                        suc    = true;
                    }
                    else
                    {
                        jwtStr = "not find user";
                    }
                }
                else
                {
                    jwtStr = "login fail!!!";
                }
            }

            return(new MessageModel <string>()
            {
                success = suc,
                msg = suc ? "获取成功" : "获取失败",
                response = jwtStr
            });
        }
예제 #2
0
        public async Task <MessageModel <string> > Post(sysUserInfo sysUserInfo)
        {
            var data = new MessageModel <string>();

            sysUserInfo.uLoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.uLoginPWD);
            sysUserInfo.uRemark   = _user.Name;

            var sysuser = await _sysUserInfoServices.Query(a => a.uLoginName == sysUserInfo.uLoginName);

            if (sysuser.Count > 0)
            {
                data.success = false;
                data.msg     = "用户已存在";
            }
            else
            {
                var id = await _sysUserInfoServices.Add(sysUserInfo);

                data.success  = id > 0;
                data.response = id.ObjToString();
                data.msg      = "添加成功";
            }

            return(data);
        }
예제 #3
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 && d.tdIsDelete == false);

            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 data = await _roleModulePermissionServices.RoleModuleMaps();

                var list = (from item in data
                            where item.IsDeleted == false
                            orderby item.Id
                            select new PermissionItem
                {
                    Url = item.Module?.LinkUrl,
                    Role = item.Role?.Name,
                }).ToList();

                _requirement.Permissions = list;

                //用户标识
                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 = "认证失败"
                }));
            }
        }
예제 #4
0
        public async Task <MessageModel <TokenInfoViewModel> > GetJwtToken3(string name = "", string pass = "")
        {
            string jwtStr = string.Empty;

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass))
            {
                return(Failed <TokenInfoViewModel>("用户名或密码不能为空"));
            }

            pass = MD5Helper.MD5Encrypt32(pass);

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

            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)));


                // ids4和jwt切换
                // jwt
                if (!Permissions.IsUseIds4)
                {
                    var data = await _roleModulePermissionServices.RoleModuleMaps();

                    var list = (from item in data
                                where item.IsDeleted == false
                                orderby item.Id
                                select new PermissionItem
                    {
                        Url = item.Module?.LinkUrl,
                        Role = item.Role?.Name.ObjToString(),
                    }).ToList();

                    _requirement.Permissions = list;
                }

                var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement);
                return(Success(token, "获取成功"));
            }
            else
            {
                return(Failed <TokenInfoViewModel>("认证失败"));
            }
        }
예제 #5
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";
                item.RID       = (allUserRoles.FirstOrDefault(d => d.UserId == item.uID)?.RoleId).ObjToInt();
                item.RoleName  = allRoles.FirstOrDefault(d => d.Id == item.RID)?.Name;
            }

            return(new MessageModel <PageModel <sysUserInfo> >()
            {
                msg = "获取成功",
                success = totalCount >= 0,
                response = new PageModel <sysUserInfo>()
                {
                    page = page,
                    pageCount = pageCount,
                    dataCount = totalCount,
                    data = sysUserInfos,
                }
            });
        }
예제 #6
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 {
                    success = false,
                    message = "用户名或密码不能为空"
                }));
            }
            //把密码加密
            pass = MD5Helper.MD5Encrypt32(pass);
            //查询用户
            var user = await _sysUserInfoServices.Query(a => a.uLoginName == name && a.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 = "认证失败"
                }));
            }
        }