コード例 #1
0
        public async Task <MessageModel <string> > GetJwtStr(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作

            var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass));

            if (user != null)
            {
                TokenModelJwt tokenModel = new TokenModelJwt {
                    Uid = 1, Role = user
                };

                jwtStr = JwtHelper.IssueJwt(tokenModel);
                suc    = true;
            }
            else
            {
                jwtStr = "login fail!!!";
            }

            return(new MessageModel <string>()
            {
                success = suc,
                msg = suc ? "获取成功" : "获取失败",
                response = jwtStr
            });
        }
コード例 #2
0
        public async Task <object> GetJwtStr(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了

            var user = await _sysUserInfoServices.GetUserRoleNameStr(name, pass);

            if (user != null)
            {
                TokenModelJwt tokenModel = new TokenModelJwt {
                    Uid = 1, Role = user
                };

                jwtStr = JwtHelper.IssueJwt(tokenModel);
                suc    = true;
            }
            else
            {
                jwtStr = "login fail!!!";
            }

            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
コード例 #3
0
        public async Task <IActionResult> GetJwtStr(string name, string pass)
        {
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass));

            if (user != null)
            {
                TokenModelJwt tokenModel = new TokenModelJwt {
                    Uid = 1, Role = user
                };

                return(Ok(JwtHelper.IssueJwt(tokenModel)));
            }
            return(BadRequest("login fail"));
        }
コード例 #4
0
        public async Task <object> GetJwtStr(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            var userRole = await _sysUserInfoServices.GetUserRoleNameStr(name, pass);

            if (userRole != null)
            {
                JwtTokenModel tokenModel = new JwtTokenModel {
                    Uid = 1, Role = userRole
                };
                jwtStr = JwtHelper.IssueJwt(tokenModel);
                suc    = true;
            }
            else
            {
                jwtStr = "login fail";
            }

            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
コード例 #5
0
        public async Task <object> GetJwtStr(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            // 获取用户的角色名,请暂时忽略其内部是如何获取的,可以直接用 var userRole="Admin"; 来代替更好理解。
            var userRole = await _sysUserInfoServices.GetUserRoleNameStr(name, pass);

            //var userRole="Admin";
            if (userRole != null)
            {
                // 将用户id和角色名,作为单独的自定义变量封装进 token 字符串中。
                TokenModelJwt tokenModel = new TokenModelJwt {
                    Uid = 1, Role = userRole
                };
                jwtStr = JwtHelper.IssueJwt(tokenModel);//登录,获取到一定规则的 Token 令牌
                suc    = true;
            }
            else
            {
                jwtStr = "login fail!!!";
            }

            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
コード例 #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
                {
                    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 = "认证失败"
                }));
            }
        }