using System.Text.RegularExpressions;
namespace GestionDeUsuarios
public string Nombre { get; private set; }
private string Contraseña;
public Usuario(string nombre)
public bool EstablecerContraseña(string nuevaContraseña)
if (ValidarContraseña(nuevaContraseña))
Contraseña = nuevaContraseña;
Console.WriteLine("Contraseña establecida con éxito.");
Console.WriteLine("La contraseña no cumple con los requisitos de seguridad.");
public bool ValidarContraseña(string contraseña)
return EsLongitudSuficiente(contraseña) &&
ContieneMayuscula(contraseña) &&
ContieneMinuscula(contraseña) &&
ContieneNumero(contraseña) &&
ContieneCaracterEspecial(contraseña);
private bool EsLongitudSuficiente(string contraseña)
return contraseña.Length >= 8;
private bool ContieneMayuscula(string contraseña)
return Regex.IsMatch(contraseña, "[A-Z]");
private bool ContieneMinuscula(string contraseña)
return Regex.IsMatch(contraseña, "[a-z]");
private bool ContieneNumero(string contraseña)
return Regex.IsMatch(contraseña, "[0-9]");
private bool ContieneCaracterEspecial(string contraseña)
return Regex.IsMatch(contraseña, "[!@#$%^&*(),.?\":{}|<>]");
public bool ValidarLogin(string nombreUsuario, string contraseña)
return nombreUsuario == Nombre && contraseña == Contraseña;
public void MostrarInfoUsuario()
Console.WriteLine($"Nombre de usuario: {Nombre}");
static void Main(string[] args)
Console.WriteLine("Bienvenido al sistema de gestión de usuarios.");
Console.Write("Ingrese un nombre de usuario: ");
string nombre = Console.ReadLine();
Usuario usuario = new Usuario(nombre);
bool contraseñaValida = false;
while (!contraseñaValida)
Console.Write("Establezca una contraseña: ");
string contraseña = Console.ReadLine();
contraseñaValida = usuario.EstablecerContraseña(contraseña);
usuario.MostrarInfoUsuario();
Console.WriteLine("\nIntentando iniciar sesión...");
Console.Write("Ingrese su nombre de usuario: ");
string loginUsuario = Console.ReadLine();
Console.Write("Ingrese su contraseña: ");
string loginContraseña = Console.ReadLine();
if (usuario.ValidarLogin(loginUsuario, loginContraseña))
Console.WriteLine("Inicio de sesión exitoso.");
Console.WriteLine("Inicio de sesión fallido. Verifique sus credenciales.");