示例#1
0
文件: Login.aspx.cs 项目: lulzzz/SAT
        /// <summary>
        /// Inicia sesión para compañía especificada
        /// </summary>
        /// <param name="id_compania">Id de Compania</param>
        /// <returns></returns>
        private RetornoOperacion iniciaSesion(int id_compania)
        {
            // Recuperamos la IP de la máquina del cliente
            // Primero comprobamos si se accede desde un proxy
            string ipAddress1 = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            // Acceso desde una máquina particular
            string ipAddress2 = Request.ServerVariables["REMOTE_ADDR"];
            //Recuperando la ip correspondiente
            string ipAddress = Cadena.RegresaElementoNoVacio(ipAddress1, ipAddress2);
            //Nombre de dispositivo
            string nomDispositivo = Request.ServerVariables["REMOTE_HOST"];

            //Recuperando información del navegador
            UsuarioSesion.TipoDispositivo tipoDispositivo = Request.Browser.IsMobileDevice ? UsuarioSesion.TipoDispositivo.Portatil : UsuarioSesion.TipoDispositivo.Escritorio;

            //Insertamos Sesión del Usuario
            RetornoOperacion resultado = UsuarioSesion.IniciaSesion(this._id_usuario, id_compania, tipoDispositivo, ipAddress, nomDispositivo,
                                                                    this._id_usuario);

            //Si se Insertó Sessión
            if (resultado.OperacionExitosa)
            {
                //Instanciamos Usuario Sesión para Asignar al Sesión
                using (UsuarioSesion objUsuarioSesion = new UsuarioSesion(resultado.IdRegistro))
                {
                    try
                    {
                        //Creando cookie con datos de inicio de sesión
                        HttpCookie Cookie = new HttpCookie("Login");

                        //Asignando llave de sesión
                        Cookie["ID"] = objUsuarioSesion.id_usuario_sesion.ToString();

                        //Añadiendo cookie
                        Response.Cookies.Add(Cookie);
                    }
                    catch (Exception ex)
                    {
                        //Registrando en log de eventos de la aplicacion
                        Excepcion.RegistraExcepcionEventLog(ConfigurationManager.AppSettings["EventLogSource"], ex);
                    }

                    //Inicializamos Variables de Sesión
                    Pagina.InicializaVariablesSesion();

                    //Obteniendo Acceso por Defecto
                    string acceso = TSDK.Base.Cadena.RutaRelativaAAbsoluta("~/Externa/Login.aspx", PerfilSeguridadUsuario.ObtieneAccesoPerfilActivo(objUsuarioSesion.id_usuario)) + "?ustk=" + this._token;

                    //Validando que exista
                    if (!acceso.Equals(""))
                    {
                        //Redireccionando a forma  por Default
                        Response.Redirect(acceso);
                    }
                }
            }

            //Devolviendo Resultado Obtenido
            return(resultado);
        }
示例#2
0
        /// <summary>
        /// Inicia sesión para compañía especificada
        /// </summary>
        /// <param name="id_compania">Id de Compania</param>
        /// <returns></returns>
        private RetornoOperacion iniciaSesion(int id_compania)
        {
            // Recuperamos la IP de la máquina del cliente
            // Primero comprobamos si se accede desde un proxy
            string ipAddress1 = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            // Acceso desde una máquina particular
            string ipAddress2 = Request.ServerVariables["REMOTE_ADDR"];
            //Recuperando la ip correspondiente
            string ipAddress = Cadena.RegresaElementoNoVacio(ipAddress1, ipAddress2);
            //Nombre de dispositivo
            string nomDispositivo = Request.ServerVariables["REMOTE_HOST"];

            //Recuperando información del navegador
            UsuarioSesion.TipoDispositivo tipoDispositivo = Request.Browser.IsMobileDevice ? UsuarioSesion.TipoDispositivo.Portatil : UsuarioSesion.TipoDispositivo.Escritorio;

            //Insertamos Sesión del Usuario
            RetornoOperacion resultado = UsuarioSesion.IniciaSesion(((Usuario)Session["usuario"]).id_usuario, id_compania, tipoDispositivo, ipAddress, nomDispositivo,
                                                                    ((Usuario)Session["usuario"]).id_usuario);

            //Si se Insertó Sessión
            if (resultado.OperacionExitosa)
            {
                //Instanciamos Usuario Sesión para Asignar al Sesión
                using (UsuarioSesion objUsuarioSesion = new UsuarioSesion(resultado.IdRegistro))
                {
                    //Asignando variable de usuario
                    Session["usuario_sesion"] = objUsuarioSesion;

                    try
                    {
                        //Creando cookie con datos de inicio de sesión
                        HttpCookie Cookie = new HttpCookie("Login");

                        //Asignando llave de sesión
                        Cookie["ID"] = objUsuarioSesion.id_usuario_sesion.ToString();

                        //Añadiendo cookie
                        Response.Cookies.Add(Cookie);
                    }
                    catch (Exception ex)
                    {
                        //Registrando en log de eventos de la aplicacion
                        Excepcion.RegistraExcepcionEventLog(ConfigurationManager.AppSettings["EventLogSource"], ex);
                    }
                }

                //Inicializamos Variables de Sesión
                Pagina.InicializaVariablesSesion();

                //Redireccionando a forma  por Default
                FormsAuthentication.RedirectFromLoginPage(((Usuario)Session["usuario"]).email, false);
            }
            return(resultado);
        }