public void IniciarSesion(string usuario, string clave) { RespuestaAuth respuestaLogin = Login.ValidarUsuario(usuario, clave); if (respuestaLogin.FueExitosa) { Program.usuarioGlobal = respuestaLogin.modelUserRole; this.Hide(); FrmMain frmMain = new FrmMain(); frmMain.Show(); } else { lblMensaje.Text = respuestaLogin.Mensaje; } }
public RespuestaAuth ValidarUsuario(string usuario, string clave) { RespuestaAuth retorno = new RespuestaAuth(); retorno.FueExitosa = false; retorno.Mensaje = "validando..."; retorno.modelUserRole = null; if (usuario.Length == 0 || clave.Length == 0) { retorno.FueExitosa = false; retorno.Mensaje = "El usuario y la clave son obligatorios"; return(retorno); } try { using (SqlConnection con = new SqlConnection(connectionString)) { // // Open the SqlConnection. // con.Open(); // // This code uses an SqlCommand based on the SqlConnection. // using (SqlCommand command = new SqlCommand(@"SELECT TOP 1 * FROM Funcionario WHERE Documento = @Username AND Password = @Password", con)) { SqlParameter uName = new SqlParameter("@Username", SqlDbType.VarChar); SqlParameter uPassword = new SqlParameter("@Password", SqlDbType.VarChar); uName.Value = usuario; uPassword.Value = clave; command.Parameters.Add(uName); command.Parameters.Add(uPassword); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { retorno.FueExitosa = true; retorno.Mensaje = "Usuario y clave válidos"; ViewModelUserRole userRole = new ViewModelUserRole { Id = reader["Id"].ToString(), Nombres = reader["Nombres"].ToString(), Apellidos = reader["Apellidos"].ToString(), Documento = reader["Documento"].ToString(), Email = reader["Email"].ToString() }; userRole.Rol = ObtenerRolesUsuario(userRole.Id); retorno.modelUserRole = userRole; } else { retorno.FueExitosa = false; retorno.Mensaje = "Usuario y clave no corresponden a un usuario del sistema"; } } } if (con.State == ConnectionState.Open) { con.Dispose(); } } } catch (Exception e) { retorno.FueExitosa = false; retorno.Mensaje = "Error en el servidor. Error: " + e.Message; } return(retorno); }