none
como hacer una variable de session con asp.net y C# RRS feed

  • Pregunta

  • Hola amigos aqui de nuevo molestando

    soy nuevo usando variables de sesion ya tengo este codigo en mi login

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    Session["Autenticacion"] = false;
    
                    FormsAuthentication.SignOut();
                }
            }
    
            protected void btnIngreso_Click(object sender, EventArgs e)
            {
                if (_Administrador.CodigoAdmon == txtNombreUsuario.Text)
                {
                    Administrador _UsuarioLogueado = new Administrador
                    {
                        CodigoAdmon = txtNombreUsuario.Text,
                        Password = txtPassword.Text
                    };
    
                    Administrador _Usuario = _AdministradorBL.AuntenticarUsuarioAdmon(_UsuarioLogueado);
    
                    if (_Usuario.CodigoAdmon == txtNombreUsuario.Text && _Usuario.Estado == true && _Usuario.Id > 0)
                    {
                        FormsAuthentication.RedirectFromLoginPage(_Usuario.PrimerNombre, chbPersistencias.Checked);
                        Session["Usuario"] = _Usuario.PrimerNombre + " " + _Usuario.PrimerApellido;
                        Session["Id"] = _Usuario.Id.ToString();
    
                        Session["Autenticacion"] = true;
                        Response.Redirect("~/AdmonPrincipal.aspx");
                    }
                    else
                    {
                        Session["Id"] = 0;
                        lblError.Visible = true;
                        txtNombreUsuario.Text = string.Empty;
                    }
                }
    }

    igual tengo un global asax

    protected void Application_Start(object sender, EventArgs e)
            {
    
            }
    
            protected void Session_Start(object sender, EventArgs e)
            {
                Session["Usuario"] = "Anonimo";
                Session["Id"] = 0;
                Session["Autenticacion"] = false;
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_AuthenticateRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
                Response.Redirect("~/Exepciones.htm");
            }
    
            protected void Session_End(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
    
            }

    el problema esta en que cuando ingreso el usuario y la contraseña no me redirecciona a la pagina deseada cabe aclarar que son tres tipos de usuarios los que tengo es decir tres niveles de acceso.

    la pregunta es que me falta para que me funcione correctamente el Login

    martes, 18 de noviembre de 2014 18:11

Respuestas

  • FormsAuthentication.RedirectFromLoginPage(_Usuario.PrimerNombre, chbPersistencias.Checked);
                        Session["Usuario"] = _Usuario.PrimerNombre + " " + _Usuario.PrimerApellido;
                        Session["Id"] = _Usuario.Id.ToString();

    Pensemos un poco

    la primera Línea realiza la autenticación y se va a la pagina por defecto, por ejemplo Default.aspx

    que le parece si cambiamos el orden de los actores

    Session["Autenticacion"] = true;
    Session["Usuario"] = _Usuario.PrimerNombre + " " + _Usuario.PrimerApellido;
    Session["Id"] = _Usuario.Id.ToString();
    FormsAuthentication.RedirectFromLoginPage(_Usuario.PrimerNombre, chbPersistencias.Checked);

    Si la pagina por defecto es Default.aspx

    usted podría chekar la sesión en el load page

    if ((bool)Session["Autenticacion"])
          Response.Redirect("~/AdmonPrincipal.aspx");
    <authentication mode="Forms">
         <forms defaultUrl="Default.aspx" loginUrl="login.aspx" protection="All" timeout="30">
              </forms>
    </authentication>    
    damos por hecho que tiene una sección en web.Config


    G. Poliovei


    • Editado George Poliovei miércoles, 19 de noviembre de 2014 3:04
    • Marcado como respuesta Francisco901 miércoles, 19 de noviembre de 2014 18:11
    miércoles, 19 de noviembre de 2014 2:56
  • Le expongo un vistazo rapido de como debe ser un archivo de configuracion seguramente usted tiene algun error en alguna seccion
    <?xml version="1.0"?>
    
    <configuration>
    	<appSettings/>
      <connectionStrings>
        
      </connectionStrings>
    	<system.web>
    	
    		<compilation debug="true">
    			<assemblies>
            ...
    			</assemblies>
        </compilation>
    	
    <authentication mode="Forms">
    <forms  path="/" loginUrl="Login.aspx" defaultUrl="Default.aspx" protection="All">
    </forms>
    </authentication>
    
    <authorization>
    <deny users="?"></deny>
    </authorization>
      
    	</system.web>
    </configuration>
    Esta Guia es muy Ilustrativa Trata el tema de los Memberships


    G. Poliovei

    • Marcado como respuesta Francisco901 miércoles, 19 de noviembre de 2014 19:35
    miércoles, 19 de noviembre de 2014 17:18

Todas las respuestas

  • Pruebe agregando esta seccion en su Web.Config

    <location path="AdmonPrincipal.aspx">
        <system.web>
            <authorization>
                <allow users="*" />
            </authorization>
        </system.web>
    </location>

    Supongo que no necesita el

    Response.Redirect("~/AdmonPrincipal.aspx");


    G. Poliovei

    martes, 18 de noviembre de 2014 19:44
  • Hola George gusto saludarte de nuevo gracias por contestar

    pues lo del webconfig ya lo habia hecho y aun asi no me redirecciona a la pagina deseada


    • Editado Francisco901 martes, 18 de noviembre de 2014 21:55
    martes, 18 de noviembre de 2014 20:08
  • ayuda enserio estoy contrareloj perdon la insistensia
    miércoles, 19 de noviembre de 2014 2:27
  • Hola, usted solo desea re direccionar ?

    Todo lo demás funciona correctamente?

    Es eso lo que realmente desea hacer porque es un poco confuso el uso de sesiones en un login?


    G. Poliovei

    miércoles, 19 de noviembre de 2014 2:32
  • FormsAuthentication.RedirectFromLoginPage(_Usuario.PrimerNombre, chbPersistencias.Checked);
                        Session["Usuario"] = _Usuario.PrimerNombre + " " + _Usuario.PrimerApellido;
                        Session["Id"] = _Usuario.Id.ToString();

    Pensemos un poco

    la primera Línea realiza la autenticación y se va a la pagina por defecto, por ejemplo Default.aspx

    que le parece si cambiamos el orden de los actores

    Session["Autenticacion"] = true;
    Session["Usuario"] = _Usuario.PrimerNombre + " " + _Usuario.PrimerApellido;
    Session["Id"] = _Usuario.Id.ToString();
    FormsAuthentication.RedirectFromLoginPage(_Usuario.PrimerNombre, chbPersistencias.Checked);

    Si la pagina por defecto es Default.aspx

    usted podría chekar la sesión en el load page

    if ((bool)Session["Autenticacion"])
          Response.Redirect("~/AdmonPrincipal.aspx");
    <authentication mode="Forms">
         <forms defaultUrl="Default.aspx" loginUrl="login.aspx" protection="All" timeout="30">
              </forms>
    </authentication>    
    damos por hecho que tiene una sección en web.Config


    G. Poliovei


    • Editado George Poliovei miércoles, 19 de noviembre de 2014 3:04
    • Marcado como respuesta Francisco901 miércoles, 19 de noviembre de 2014 18:11
    miércoles, 19 de noviembre de 2014 2:56
  • Hola George Buenos dias 

    gracias por contestar 

    mire aun no me funciona y esta parte del web.Config que menciona no la entiendo muy bien.

    con respecto al default como puedo hacer para tres niveles de usuario que son los que tengo

    miércoles, 19 de noviembre de 2014 14:35
  • Hola mire George me da este error

    miércoles, 19 de noviembre de 2014 14:46
  • Le expongo un vistazo rapido de como debe ser un archivo de configuracion seguramente usted tiene algun error en alguna seccion
    <?xml version="1.0"?>
    
    <configuration>
    	<appSettings/>
      <connectionStrings>
        
      </connectionStrings>
    	<system.web>
    	
    		<compilation debug="true">
    			<assemblies>
            ...
    			</assemblies>
        </compilation>
    	
    <authentication mode="Forms">
    <forms  path="/" loginUrl="Login.aspx" defaultUrl="Default.aspx" protection="All">
    </forms>
    </authentication>
    
    <authorization>
    <deny users="?"></deny>
    </authorization>
      
    	</system.web>
    </configuration>
    Esta Guia es muy Ilustrativa Trata el tema de los Memberships


    G. Poliovei

    • Marcado como respuesta Francisco901 miércoles, 19 de noviembre de 2014 19:35
    miércoles, 19 de noviembre de 2014 17:18
  • Gracias George, como siempre es un gran apoyo en el desarrollo de software muchas gracias por el aporte muchisimas gracias
    miércoles, 19 de noviembre de 2014 19:36