public async Task <JWTViewModel> GenerarToken(ResultadoLoginViewModel resultado) { var nombreUsuarioToken = Crypto.EncryptStringAES(resultado.NombreUsuario); var idUsuarioToken = Crypto.EncryptStringAES($"{resultado.IdUsuario}," + $"{resultado.RFC}"); //var rolToken = Crypto.EncryptStringAES(usuario.Nombre); //Boolean adm = usuario.Administrador; var nowUtc = DateTime.UtcNow; var expires = nowUtc.AddMinutes(_settings.Expire); var centuryBegin = new DateTime(1970, 1, 1); var exp = (long)(new TimeSpan(expires.Ticks - centuryBegin.Ticks).TotalSeconds); var now = (long)(new TimeSpan(nowUtc.Ticks - centuryBegin.Ticks).TotalSeconds); var issuer = _settings.Issuer ?? string.Empty; //String[] roles = {usuario.Nombre }; //Boolean exito = usuario.Exito; var payload = new JwtPayload { { "sub", nombreUsuarioToken }, { "unique_name", idUsuarioToken }, { "rol", resultado.Rol }, { "iss", issuer }, { "iat", now }, { "nbf", now }, { "exp", exp }, //{"roles",roles }, //{"exito", exito }, //{"administrador", adm }, { "jti", Guid.NewGuid().ToString("N") } }; var jwt = new JwtSecurityToken(_jwtHeader, payload); var token = _jwtSecurityTokenHandler.WriteToken(jwt); return(new JWTViewModel { Token = token, Expires = exp, IdUsuario = resultado.IdUsuario, NombreUsuario = resultado.NombreUsuario, Rol = resultado.Rol, UserName = resultado.UserName, RFC = resultado.RFC, CodigoPuesto = resultado.CodigoPuesto, Exito = resultado.Exito, Mensaje = resultado.Mensaje, IdSucursal = resultado.IdSucursal, Sucursal = resultado.Sucursal }); }
public async Task <ResultadoLoginViewModel> AutentificacionUsuario(LoginViewModel usuario) { using (var Conexion = new SqlConnection(Helpers.ContextConfiguration.ConexionString)) { var resultado = new ResultadoLoginViewModel() { Exito = false, Mensaje = "Existe un error en Servidor" }; try { var comando = new SqlCommand(); comando.Connection = Conexion; comando.CommandText = "Seguridad.Authenticacion"; comando.CommandType = System.Data.CommandType.StoredProcedure; /*Agregando los parametros*/ comando.Parameters.AddWithValue("@usuario", usuario.Username.Trim()); comando.Parameters.AddWithValue("@pass", usuario.Password.Trim()); Conexion.Open(); var Lectura = await comando.ExecuteReaderAsync(); if (Lectura.HasRows) { while (Lectura.Read()) { resultado.Exito = Lectura.GetBoolean(0); resultado.Mensaje = Lectura.GetString(1); resultado.NombreUsuario = Lectura.GetString(2); resultado.Rol = Lectura.GetString(3); resultado.IdUsuario = Lectura.GetGuid(4); resultado.UserName = Lectura.GetString(5); resultado.RFC = Lectura.GetString(6); resultado.CodigoPuesto = Lectura.GetString(7); resultado.IdSucursal = Lectura.GetGuid(8); resultado.Sucursal = Lectura.GetString(9); } } Conexion.Close(); return(resultado); } catch (Exception e) { var m = e.Message.ToString(); return(resultado); } } }