/// <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); }
/// <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); }