public static string GenerateTokenJwt(Admin admin, string secretKey, string audienceToken, string issuerToken, string expireTime, Mapeo _contex)
        {
            //TODO: appsetting for Demo JWT - protect correctly this settings
            var securityKey        = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey));
            var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

            // create a claimsIdentity
            ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.Name, admin.Usuario),
                new Claim(ClaimTypes.Role, admin.Rol.ToString())
            });

            // create token to the user
            var tokenHandler     = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); //Se crea objeto que tiene el estandar JWT
            var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken(
                audience: audienceToken,
                issuer: issuerToken,
                subject: claimsIdentity,
                notBefore: DateTime.Now,                                       //fecha de creación del token
                expires: DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)), //fecha de expiración de token
                signingCredentials: signingCredentials);

            var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken);

            AdminTokenLogin token = new AdminTokenLogin();

            token.FechaGenerado = DateTime.Now;
            token.FechaVigencia = DateTime.Now.AddMinutes(Convert.ToInt32(expireTime));
            token.IdAdmin       = admin.IdAdmin;
            token.Token         = jwtTokenString;
            new LAdministrador(_contex).guardarToken(token);
            return(jwtTokenString);
        }
 //Guarda token de login (S)
 public async Task almacenarTokenLogin(AdminTokenLogin token)
 {
     using (var db = _context)
     {
         db.tokenLoginAd.Add(token);
         await db.SaveChangesAsync();
     }
 }
 //Elimina token al cerrar sesion (S)
 public async Task eliminarToken(AdminTokenLogin token)
 {
     using (var db = _context)
     {
         AdminTokenLogin tokenC = db.tokenLoginAd.Where(x => x.IdAdmin == token.IdAdmin).First();
         db.tokenLoginAd.Remove(tokenC);
         await db.SaveChangesAsync();
     }
 }
예제 #4
0
        public async Task <ActionResult> delEliminarToken(string usuario)
        {
            Admin administrador = new LAdministrador(_context).mostrarDatosLogin(usuario);
            int   idAdmin;

            idAdmin = administrador.IdAdmin;

            AdminTokenLogin token = new AdminTokenLogin();

            token.IdAdmin = idAdmin;
            await new LAdministrador(_context).eliminarToken(token);
            return(Ok("El token fue eliminado"));
        }
예제 #5
0
 public async Task eliminarToken(AdminTokenLogin token) //S
 {
     await new DaoAdministrador(_context).eliminarToken(token);
 }
예제 #6
0
 public async Task guardarToken(AdminTokenLogin token) //S
 {
     await new DaoSeguridadAdmin(_context).almacenarTokenLogin(token);
 }