Foros del Web » Programación para mayores de 30 ;) » .NET »

Guardar Usuario de Login C#

Estas en el tema de Guardar Usuario de Login C# en el foro de .NET en Foros del Web. Tengo una duda en C#, tengo un login y ya logre que se logeara con un usuario y un password, mi problema es el siguiente, ...
  #1 (permalink)  
Antiguo 17/11/2011, 02:07
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Guardar Usuario de Login C#

Tengo una duda en C#, tengo un login y ya logre que se logeara con un usuario y un password, mi problema es el siguiente, se crean reportes y en el reporte tiene que aparacer el usuario que creo dicho reporte, quisiera saber como se puede hacer esto, gracias de antemano, les muestro el codigo del Login para que sea mas entendible

Código:
 public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
       
        protected void Button1_Click(object sender, EventArgs e)
        {
            if ((TextBox1.Text == "") || (TextBox2.Text == ""))
            {
                MessageBox.Show("El campo USUARIO no puede ir vacio");
                TextBox1.Focus();
            }
            
            else
            {
                string oradb = "";
                oradb = ClassLibrary1.Class1.leeXML();
                OracleConnection conn = new OracleConnection(oradb);

                conn.Open();
                
                
                OracleConnection conn1 = new OracleConnection(oradb);

                string nombre,contra,categoria;
                string nombre1, contra1;
                nombre = TextBox1.Text;
                contra = TextBox2.Text;
                string sql = "select USUARIO,CONTRASENA,COD_CATEGORIA from EMPLEADO where USUARIO = '" + nombre + "' AND CONTRASENA='"+contra+"'";

               
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    cmd.CommandType = CommandType.Text;


                    string sql1 = "select COD_CATEGORIA from EMPLEADO where USUARIO = '" + nombre + "' AND CONTRASENA='" + contra + "'";


                    OracleCommand cmd1 = new OracleCommand(sql1, conn1);
                    cmd1.CommandType = CommandType.Text;
                

                    OracleDataReader dr1 = cmd.ExecuteReader();
                    dr1.Read();
                    
                    OracleDataReader dr2 = cmd.ExecuteReader();
                    dr2.Read();

                    OracleDataReader dr3 = cmd1.ExecuteReader();
                    dr3.Read();
                    
                    try
                    {
                    nombre1 = dr1["USUARIO"].ToString();
                    nombre1 = dr1.GetString(0).ToString();
                    nombre1 = dr1.GetOracleString(0).ToString();
                    contra1 = dr2["CONTRASENA"].ToString();
                    contra1 = dr2.GetString(0).ToString();
                    contra1 = dr2.GetOracleString(0).ToString();
                    categoria = dr3["COD_CATEGORIA"].ToString();
                    categoria = dr3.GetString(0).ToString();
                    categoria = dr3.GetOracleString(0).ToString();
                                   
                    if ((nombre == nombre1) || (contra == contra1))
                    {
                        MessageBox.Show("USUARIO VALIDO!!!!!!");
 }
                    catch (InvalidOperationException excep)
                    {
                        string error;
                        error = excep.GetType().ToString();
                        MessageBox.Show("ERROR!!! USUARIO O CONTRASEÑA INCORRECTO");
                    }
                conn.Close();
                conn.Dispose(); 
            }
        }
    }
  #2 (permalink)  
Antiguo 22/11/2011, 05:01
Avatar de guichogdl  
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años
Puntos: 1
Respuesta: Guardar Usuario de Login C#

hola! que tal, con todo respeto veo muchos errores, redundancias y muchas lineas innecesarias de código innecesarias.

En la primera condición que usas para validar que se ingresen los datos de "usuario" y "contraseña" usas || , deberías usar mejor un && ya que es necesitas que los 2 datos se ingresen para ejecutar tu consulta a la base de datos.
Código PHP:
if ((TextBox1.Text == "") || (TextBox2.Text == ""))
   {
                
MessageBox.Show("El campo USUARIO no puede ir vacio");
                
TextBox1.Focus();
    } 
mejor dejalo asi:
Código PHP:
if ((TextBox1.Text == "") && (TextBox2.Text == ""))
    {
                
MessageBox.Show("El campo USUARIO no puede ir vacio");
                
TextBox1.Focus();
    } 

No creo que sea necesario ejecutar 2 consultas donde buscas los mismos datos, con una seria suficiente.
Deja solo esta, ya que es la que obtendría mas datos al tener éxito la sentencia
Código PHP:
string sql "select USUARIO,CONTRASENA,COD_CATEGORIA from EMPLEADO where USUARIO = '" nombre "' AND CONTRASENA='"+contra+"'"

Creas demasiados objetos OracleDataReader, con uno solo es suficiente para recibir los datos de la consulta. deja solo uno
Código PHP:
OracleDataReader dr1 cmd.ExecuteReader();
dr1.Read(); 

Donde asignas los valores de "dr1" al no tener los otros objetos dr2 y dr3 podrias dejarlo asi:
Código PHP:
nombre1 dr1["USUARIO"].ToString();
contra1 dr1["CONTRASENA"].ToString();
categoria dr1["COD_CATEGORIA"].ToString(); 
podrias usar cualquiera de las 3 formas que pusiste, pero deja solo una, ya que cualquiera de las 3 te asignaría los datos.
Código PHP:
dr1["USUARIO"].ToString();
dr1.GetString(0).ToString();
dr1.GetOracleString(0).ToString(); //Esta no la eh usado 

Esta condicion es innecesaria, si la consulta devolvio datos, significa que el usuario es valido, borrala.
Código PHP:
if ((nombre == nombre1) || (contra == contra1))
                    {
                        
MessageBox.Show("USUARIO VALIDO!!!!!!");
 } 

el try debes ponerlo donde comienza la ejecución del botón, asi si salta una excepción, la puedas controlar en el catch, ponlo mejor aquí:
Código PHP:
 protected void Button1_Click(object senderEventArgs e)
        {
     try{ 
// <--- aquí es mejor

            
if ((TextBox1.Text == "") || (TextBox2.Text == ""))
            { 

Y ya respondiendo a tu pregunta, :D donde haces lo siguiente ya tienes el dato "nombre" que necesitas para tus reportes.

Código PHP:
nombre1 dr1["USUARIO"].ToString(); 
nombre1 podrias enviarlo a donde lo necesitas por un método como parámetro, por el constructor o como tu quieras.


Espero que todo esto te sirva y haberte ayudado. Saludos!!

Etiquetas: c#, csharp, login, visualbasic
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.