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(); } }
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")); }
public async Task eliminarToken(AdminTokenLogin token) //S { await new DaoAdministrador(_context).eliminarToken(token); }
public async Task guardarToken(AdminTokenLogin token) //S { await new DaoSeguridadAdmin(_context).almacenarTokenLogin(token); }