Foros del Web » Programando para Internet » ASPX (.net) »

Alguien puede ayudarme a realizar una validacion de tipo: Administrador, docente,alum

Estas en el tema de Alguien puede ayudarme a realizar una validacion de tipo: Administrador, docente,alum en el foro de ASPX (.net) en Foros del Web. Hola nuevamente amigos de forosdelweb. Acudo a ustedes para que me brinden de su ayuda. Alguien puede ayudarme a realizar una validacion de tipo: Administrador, ...
  #1 (permalink)  
Antiguo 22/05/2012, 20:22
 
Fecha de Ingreso: julio-2008
Mensajes: 56
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Alguien puede ayudarme a realizar una validacion de tipo: Administrador, docente,alum

Hola nuevamente amigos de forosdelweb.

Acudo a ustedes para que me brinden de su ayuda.

Alguien puede ayudarme a realizar una validacion de tipo:
Administrador,
docente,
alumno.

con Asp.net y C#

ya tengo una validacion que me permite ver si elusuario existe o no en la base de datos. Pero me he bloqueado para hacerla validacion de que tipo de usuario a ingresado al sistema y redireccionarlo a su pagina.

Por ejemplo al administrador le pobdre derechos para todo.
Al docente solo para ingresar notas.
Los alumnos solopodran hacer consultas.

Aqui les coloco mis codigos principales:
ClassLogin.cs
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
public class ClassLogin
{
    public bool autenticar(string us, string ps)
    {
        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["portalEducativo"].ToString());
        SqlCommand cm = new SqlCommand("select * from usuarios where usuario = @usuario and password=@password", cn);
        cm.Parameters.AddWithValue("@usuario", us);
        cm.Parameters.AddWithValue("@password", ps);
        cn.Open();
        SqlDataReader reader;
        reader = cm.ExecuteReader();
        if (reader.HasRows)
            return true;
            else
            return false;
    }
}
_____________________________________________
Aqui manejo la sesion si es usuario autenticado:
es un archivo Global.asax
Código:
void Session_Start(object sender, EventArgs e) 
    {
        Session["login"] = "0";
    }
______________________________________________


Este es el boton que genera la validacion:
Código:
protected void Button2_Click(object sender, EventArgs e)
    {
        //crear el objeto de la clase : ClassLogin creada en el archivo cs.
        ClassLogin ObjAut = new ClassLogin();
        //invoca al metodo autenticar enviando los argumentos usuario,password
        bool valido = ObjAut.autenticar(usuarioTxt.Text, passwordTxt.Text);
        if (valido)
        {
            Session["login"] = "1";
            Response.Redirect("Admin.aspx");
        }
        else
        Response.Write("ERROR, Usuario o contraseña no son correctos");
    }
__________________________________________________ ___

estome funciona solo si deseo que las personas logueadas vean mi web.
Código:
protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["login"].ToString() != "1")
            Response.Redirect("Default.aspx");
    }
Pero solo valida que el usuario exista en la BD no puedo validar por roles.

En la BD ya tengo los roles pero no se como comparar esos datos.

Alguien me ayuda con este problema por favor.

al tenerlo solucionado lo posteare aqui paraq ue le sirva a otro.

Muchas gracias.
  #2 (permalink)  
Antiguo 23/05/2012, 08:07
 
Fecha de Ingreso: julio-2008
Mensajes: 56
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Respuesta: Alguien puede ayudarme a realizar una validacion de tipo: Administrador, d

Estoy intentando algo como esto:
Código:
public string tipo(string tipousu)
    {
        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["portalEducativo"].ToString());
        SqlCommand cm = new SqlCommand("SELECT p.nombrePrivilegio"+
            "FROM usuarios as u, privilegios as p"+
            "where u.id_privilegio=p.id_privilegio"+
            "and p.nombrePrivilegio=@tipousu", cn);
        cm.Parameters.AddWithValue("@tipousu", tipousu);
        cn.Open();
        SqlDataReader reader;
        reader = cm.ExecuteReader();
la pregunta es:¿Como comparo el resultado que me devuelve el ExecuteReader con los tipos de usuario?
la idea es pasarle el parametro desde una variable de session que contenga ese dato. :)

espero su ayuda.

Muchas gracias.
  #3 (permalink)  
Antiguo 23/05/2012, 10:21
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Alguien puede ayudarme a realizar una validacion de tipo: Administrador, d

Hola, pues en el select que le haces a la tabla, tendrias que incluir el tipo de usuario.

Te dejo un ejemplo que hice hace tiempo donde manejo usuario y administrador.

Clase login.
Código C#:
Ver original
  1. public string autenticar(string us, string ps)
  2.     {
  3.         SqlConnection cn = new SqlConnection("Data Source=.; Initial Catalog=serviciosinformaticos; Integrated Security=SSPI;");
  4.         string tipo = "";
  5.         SqlCommand cm = new SqlCommand("select tipo_usuario from dbo.usuarios where usuario = @usuario and password=@password", cn);
  6.         cm.Parameters.AddWithValue("@usuario", us);
  7.         cm.Parameters.AddWithValue("@password", ps);
  8.         cn.Open();
  9.  
  10.         SqlDataReader reader;
  11.         reader = cm.ExecuteReader();
  12.  
  13.         if (reader.HasRows)
  14.             while (reader.Read())
  15.             {
  16.                 tipo = reader["tipo_usuario"].ToString();
  17.             }
  18.  
  19.         return tipo;            
  20.     }

Y lo implemento asi.
Código C#:
Ver original
  1. //crear el objeto de la clase  
  2.         ClassLogin obj = new ClassLogin();
  3.         //invoca al metodo autenticar enviando los argumentos usuario,password
  4.         string auth;
  5.         auth = obj.autenticar(usuariotxt.Text, passwordtxt.Text);
  6.         if (auth == "admin")
  7.         {
  8.             Session["login"] = "1";
  9.             Response.Redirect("index2.aspx");
  10.         }
  11.         else if (auth == "user")
  12.         {
  13.             Session["login"] = "1";
  14.             Response.Redirect("index.aspx");
  15.         }
  16.         else
  17.             Response.Write("USUARIO O PASSWORD NO VALIDOS");

Espero te sirva ahi solo adaptalo a tus necesidades
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Etiquetas: c#, sql-server-2008, aspx
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

SíEste tema le ha gustado a 1 personas




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