Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/07/2008, 05:25
Ciberyo
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Duda sobre carpetas privadas

Y ahora te añado el codigo que iria en el formulario que se utilizaria para iniciar la sesión

Código:
 protected void Button1_Click(object sender, EventArgs e)
    {
        if (txtuser.Text != "" & txtpass.Text != "")
        {
            string rol = IsAuthenticated(this.txtuser.Text, this.txtpass.Text);
                if (rol != "")
                {
                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, txtuser.Text, DateTime.Now, DateTime.Now.AddMinutes(30), false, rol);
                    //Encriptar el type
                    string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                    //crear la coockie con el ticket cifrado
                    HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                    //añadimos la cookie a la coleccion de cookies del navegador
                    Response.Cookies.Add(authCookie);
                   // Response.Redirect(FormsAuthentication.GetRedirectUrl(txtuser.Text, false));
                    if (rol == "admin")
                    {
                        Response.Redirect("~/zonaempleado/Default.aspx");
                    }
                    if (rol == "user")
                    {
                        Response.Redirect("~/zonacliente/Default.aspx");
                    }
                }
                else
                {
                    Response.Write("<script>alert('El usuario especificado no existe o la contraseña es incorrecta')</script>");
                }   
        }
        else
        {
            Response.Write("<script>alert('Tanto el nombre de usuario como al contraseña son obligatorios para loguearse')</script>");
        }
    }

    private string IsAuthenticated(string username, string password)
    {
        // Comprobamos que el usuario existe en nuestra base de datos y que la contraseña es la correcta
        SqlConnection objconectar = new SqlConnection(ConfigurationManager.ConnectionStrings["conexionsurf"].ToString());
        //Abrimos la conexion
        objconectar.Open();
        //Creamos la variable tipo Command y le asignamos la consulta sql para que nos busque solo por el apellido asignado
        SqlCommand Consulta = new SqlCommand("SELECT rol from usuarios Where dni=@pidcliente and pass=@ppass;", objconectar);
        Consulta.Parameters.Add("@pidcliente", SqlDbType.VarChar);
        Consulta.Parameters["@pidcliente"].Value = this.txtuser.Text;
        Consulta.Parameters.Add("@ppass", SqlDbType.VarChar);
        Consulta.Parameters["@ppass"].Value = this.txtpass.Text;
        //Ejecutamos la cosulta y la asignamos al lector.
        string rol = Convert.ToString(Consulta.ExecuteScalar());
        //Cerramos conexión y desechamos la variable
        objconectar.Close();
        objconectar.Dispose();
        return rol;
    }
Si te fijas esta para que redireccione segun el rol que tengan a su seccion correspondiente.

Espero que te sea de ayuda