예제 #1
0
    public static string IniciarSesion(string pUsuario, string pContrasena)
    {
        string validacion = ValidaUsuario(pUsuario, pContrasena);

        if (validacion != "")
        {
            return("1|" + validacion);
        }
        else
        {
            //Abrir Conexion
            CConexion ConexionBaseDatos = new CConexion();
            string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();

            //¿La conexion se establecio?
            if (respuesta == "Conexion Establecida")
            {
                CUsuario Usuario = new CUsuario();
                Usuario.IniciarSesion(pUsuario, pContrasena, ConexionBaseDatos);
                if (Usuario.Usuario == "" || Usuario.Usuario == null || Usuario.Baja == true)
                {
                    respuesta = "1|El usuario o contraseña son incorrectos, intentalo de nuevo.";
                }
                else
                {
                    HttpContext.Current.Session["IdUsuario"]  = Usuario.IdUsuario;
                    HttpContext.Current.Session["IdSucursal"] = Usuario.IdSucursalPredeterminada;
                    HttpCookie sesion = new HttpCookie("IdUsuario");
                    sesion.Value = Usuario.IdUsuario.ToString();
                    CSucursal Sucursal = new CSucursal();
                    Sucursal.LlenaObjeto(Usuario.IdSucursalPredeterminada, ConexionBaseDatos);
                    HttpContext.Current.Session["IdEmpresa"] = Sucursal.IdEmpresa;
                    if (Usuario.IdPerfil != 0 && (Usuario.TienePermisos(new string[] { "controlTotal" }, ConexionBaseDatos) == "" || Usuario.TienePermisos(new string[] { "perfilConfigurador" }, ConexionBaseDatos) == ""))
                    {
                        Usuario.LlenaObjeto(Usuario.IdUsuario, ConexionBaseDatos);
                        Usuario.IdSucursalActual = Usuario.IdSucursalPredeterminada;
                        Usuario.Editar(ConexionBaseDatos);
                        CPerfil Perfil = new CPerfil();
                        Perfil.IdPerfil = Usuario.IdPerfil;
                        Perfil.LlenaObjeto(Usuario.IdPerfil, ConexionBaseDatos);
                        CPagina PaginaInicio = new CPagina();
                        PaginaInicio.LlenaObjeto(Perfil.IdPagina, ConexionBaseDatos);
                        CMenu Menu = new CMenu();
                        Menu.LlenaObjeto(PaginaInicio.IdMenu, ConexionBaseDatos);
                        respuesta = "0|Paginas/" + PaginaInicio.Pagina;
                    }
                    else if (Usuario.TieneSucursalAsignada(ConexionBaseDatos) == true)
                    {
                        Usuario.LlenaObjeto(Usuario.IdUsuario, ConexionBaseDatos);
                        Usuario.IdSucursalActual = Usuario.IdSucursalPredeterminada;
                        Usuario.Editar(ConexionBaseDatos);

                        CSucursalAsignada           SucursalAsignada           = new CSucursalAsignada();
                        Dictionary <string, object> ParametrosSucursalAsignada = new Dictionary <string, object>();
                        ParametrosSucursalAsignada.Add("IdUsuario", Usuario.IdUsuario);
                        ParametrosSucursalAsignada.Add("IdSucursal", Usuario.IdSucursalActual);
                        SucursalAsignada.LlenaObjetoFiltros(ParametrosSucursalAsignada, ConexionBaseDatos);

                        CPerfil Perfil = new CPerfil();
                        Perfil.LlenaObjeto(SucursalAsignada.IdPerfil, ConexionBaseDatos);
                        CPagina PaginaInicio = new CPagina();
                        PaginaInicio.LlenaObjeto(Perfil.IdPagina, ConexionBaseDatos);
                        CMenu Menu = new CMenu();
                        Menu.LlenaObjeto(PaginaInicio.IdMenu, ConexionBaseDatos);
                        respuesta = "0|Paginas/" + PaginaInicio.Pagina;
                    }
                    else
                    {
                        HttpContext.Current.Session["IdUsuario"] = 0;
                        sesion.Value = "0";
                        respuesta    = "1|No tienes ninguna sucursal asignada, favor de avisar al administrador.";
                    }
                    HttpContext.Current.Response.SetCookie(sesion);


                    CHistorialGenerico HistorialGenerico = new CHistorialGenerico();
                    HistorialGenerico.IdGenerico = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                    HistorialGenerico.IdUsuario  = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                    HistorialGenerico.Fecha      = Convert.ToDateTime(DateTime.Now);
                    HistorialGenerico.Comentario = "El usuario " + Usuario.Nombre + " " + Usuario.ApellidoPaterno + " " + Usuario.ApellidoMaterno + " ingreso al sistema";
                    HistorialGenerico.AgregarHistorialGenerico("Usuario", ConexionBaseDatos);
                }
            }
            return(respuesta);
        }
    }