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