コード例 #1
0
        public async Task <IActionResult> Post(UsuariosAuth userData)
        {
            UsuariosAuth _userData = new UsuariosAuth();

            _userData.Usuario  = userData.Usuario;
            _userData.Password = userData.Password;

            if (_userData.Usuario != null && _userData.Password != null)
            {
                var user = await GetUser(_userData.Usuario, _userData.Password);

                if (user != null)
                {
                    //create claims details based on the user information
                    var claims = new[] {
                        new Claim(JwtRegisteredClaimNames.Sub, _configuration["Jwt:Subject"]),
                        new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                        new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()),
                        new Claim("Id", user.Id.ToString()),
                        new Claim("nombres", user.Nombres),
                        new Claim("apellidos", user.Apellidos),
                        new Claim("usuario", user.Usuario),
                        // new Claim("rol", user.Rol.Rol),
                        //new Claim("empresa", user.Empresa.Empresa),
                        //new Claim("area", user.Area.Area),
                        //new Claim("depa", user.Departamento.Departamento),
                        // new Claim("cargo", user.Cargo.Cargo),
                    };

                    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));

                    var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                    var token = new JwtSecurityToken(_configuration["Jwt:Issuer"], _configuration["Jwt:Audience"], claims, expires: DateTime.UtcNow.AddDays(1), signingCredentials: signIn);

                    //var token1 = new JwtSecurityTokenHandler().WriteToken(token);
                    return(Ok(new JwtSecurityTokenHandler().WriteToken(token)));
                    //return Ok(token);
                }
                else
                {
                    return(BadRequest("Invalid credentials"));
                }
            }
            else
            {
                return(BadRequest());
            }
        }
コード例 #2
0
        public async Task <IActionResult> getEmpleado(Usuarios userData)
        {
            UsuariosAuth _userData = new UsuariosAuth();

            _userData.Usuario  = userData.Usuario;
            _userData.Password = userData.Password;

            if (_userData.Usuario != null && _userData.Password != null)
            {
                /* var user = await _context.Usuarios.Include(d => d.Departamento).Include(a => a.Area).Include(ca => ca.Cargo).
                 * Include(emp => emp.Empresa).Include(rol => rol.Rol).
                 * FirstOrDefaultAsync(u => u.Usuario == _userData.Usuario && u.Password == _userData.Password);
                 * return Ok(user);*/

                var user = await _context.Usuarios.Include(c => c.Cargo).ThenInclude(dp => dp.Departamento).ThenInclude(ar => ar.Area).ThenInclude(emp => emp.Empresa).
                           FirstOrDefaultAsync(u => u.Usuario == _userData.Usuario && u.Password == _userData.Password);

                return(Ok(user));
            }
            else
            {
                return(BadRequest("Invalid credentials"));
            }
        }