public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (HttpContext.Current.Session["SessionTipoUsuario"] == null)
                {
                    UsuarioModels  Usuario       = new UsuarioModels();
                    _Usuario_Datos usuario_datos = new _Usuario_Datos();
                    Usuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Usuario.cuenta = user.Identity.Name;
                    int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName(Usuario);
                    HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
                }
                else
                {
                    int TipoUsuario = (int)HttpContext.Current.Session["SessionTipoUsuario"];
                    HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsuario;
                }
                if (HttpContext.Current.Session["SessionListaPermiso"] == null)
                {
                    UsuarioModels Usuario = new UsuarioModels();

                    LoginDatos LoginD = new LoginDatos();
                    Usuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Usuario.cuenta = user.Identity.Name;
                    Usuario        = LoginD.ObtenerPermisos(Usuario);
                    List <string> ListaPermiso = new List <string>();
                    foreach (var item in Usuario.ListaPermisos)
                    {
                        ListaPermiso.Add(item.NombreUrl);
                    }
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
                else
                {
                    List <string> ListaPermiso = new List <string>();
                    ListaPermiso = (List <string>)HttpContext.Current.Session["SessionListaPermiso"];
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
                if (HttpContext.Current.Session["NombreUsuario"] == null)
                {
                    UsuarioModels CuentaUsuario = new UsuarioModels();
                    CuentaUsuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    CuentaUsuario.id_usuario = user.Identity.Name;
                    int TipoUsuario = (int)HttpContext.Current.Session["SessionTipoUsuario"];
                    CuentaUsuario.id_tipoUsuario = TipoUsuario;
                    CuentaUsuario = _Usuario_Datos.ObtenerUsuario(CuentaUsuario);
                    HttpContext.Current.Session["NombreUsuario"] = CuentaUsuario.tablaUsuario.Rows[0]["Nombre"];
                }
                else
                {
                    string NombreUsuario = (string)HttpContext.Current.Session["NombreUsuario"];
                    HttpContext.Current.Session["NombreUsuario"] = NombreUsuario;
                }
            }
        }
        public async Task <RespuestaLogin> Login(LoginDatos model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                throw new COExcepcion("El email no se encuentra registrado. ");
            }

            if (await _userManager.CheckPasswordAsync(user, model.Password))
            {
                // TODO : Queda pendiente resolver la confirmación del usuario para desbloquear esta validación

                /* if (!user.EmailConfirmed)
                 *   return new RespuestaLogin
                 *   {
                 *       Codigo = 11,
                 *       Mensaje = "Por favor confirme la cuenta. El email fue enviado a su correo electrónico. ¿Desea reenviar el mensaje de confirmación?"
                 *   };*/
                var token = await GenerarTokenAcceso(user);

                return(new RespuestaLogin
                {
                    Codigo = COCodigoRespuesta.OK,
                    Mensaje = "Se inició sesión correctamente",
                    Token = new JwtSecurityTokenHandler().WriteToken(token),
                    Expire = token.ValidTo
                });
            }
            throw new COExcepcion("La contraseña es incorrecta. ");
        }
Пример #3
0
        public LoginDatos Login(string _Usuario = "", string _Contrasena = "")
        {
            var Resultado    = new LoginDatos();
            var Autorizacion = db.SBO_SP_IMF_LoginWeb(_Usuario, _Contrasena).FirstOrDefault();

            if (Autorizacion != null)
            {
                switch (Autorizacion.Status)
                {
                case 1:
                    Resultado.Nombre  = (Autorizacion.Name?.ToUpper() ?? "") + " " + (Autorizacion.lastName?.ToUpper() ?? "");
                    Resultado.Mensaje = "OK";
                    break;

                case 2:
                    Resultado.Mensaje = "USUARIO INACTIVO";
                    break;

                case 3:
                    Resultado.Mensaje = "CONTRASEÑA INCORRECTA";
                    break;

                default:
                    Resultado.Mensaje = "USUARIO NO EXISTE";
                    break;
                }
            }
            else
            {
                Resultado.Mensaje = "USUARIO NO EXISTE";
            }
            return(Resultado);
        }
Пример #4
0
        public ActionResult Index(LoginDatos _Login)
        {
            var Resultado = oUsuario.Login(_Login.Usuario, _Login.Contrasena);

            if (Resultado.Mensaje == "OK")
            {
                Session["Nombre"] = Resultado.Nombre;
                return(RedirectToAction("Inicio"));
            }
            _Login.Mensaje = Resultado.Mensaje;
            return(View(_Login));
        }
Пример #5
0
    public static LoginDatos fn_inicioSesionSistema(string sUsuario, string sPassword)
    {
        //se declara objeto de rspuesta
        LoginDatos obj_login = new LoginDatos();

        //Inicio try
        try
        {
            //Instancias
            Security obj_secVariables;
            //se agrega el valor de los campos a los metodos set
            obj_login.gssUsuario  = sUsuario;
            obj_login.gssPassword = sPassword;
            //*****
            //se manda llamar a la funcion de validar usuario
            obj_login.vValidaUsuario(obj_login);
            //se valida el resultado
            if (obj_login.gsiResultado == 1)
            {
                //se guardan las variables de sesión
                //Id de usuario
                obj_secVariables = new Security(obj_login.gsiIdUsuario.ToString());
                HttpContext.Current.Session["iIdUsuario"] = obj_secVariables.Encriptar();
                //Tipo de Usuario
                obj_secVariables = new Security(obj_login.gsiTipoUsuario.ToString());
                HttpContext.Current.Session["iTipoUsuario"] = obj_secVariables.Encriptar();
                //Nombre de Usuario
                //se encripta
                string NombreUsuario = obj_login.gssNombre + " " + obj_login.gssApePat + " " + obj_login.gssApeMat;
                obj_secVariables = new Security(NombreUsuario);
                HttpContext.Current.Session["NombreUsuario"] = obj_secVariables.Encriptar();

                //se redirecciona a la pagina de inicio
                //HttpContext.Current.Response.Redirect("Vista/Inicio/Inicio.aspx", false);
                /**************************************************/
            }
        }
        //inicio catch
        catch (Exception ex)
        {
            //se manda resultado
            obj_login.gsiResultado = 3;
            obj_login.gssMensaje   = "Lo sentimos, ha sucedido un error de tipo <b>EXEPCIÓN</b> al momento de validar la expiraciòn de tu contraseña comunícate con el departamento de TI, Error:" + ex.Message + "'";
        }
        //se retorna respuesta
        return(obj_login);
    }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (HttpContext.Current.Session["SessionTipoUsuario"] == null)
                {
                    UsuarioModels Usuario       = new UsuarioModels();
                    UsuarioDatos  usuario_datos = new UsuarioDatos();
                    Usuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Usuario.cuenta = user.Identity.Name;
                    int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName2(Usuario);
                    HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
                }
                if (HttpContext.Current.Session["SessionListaPermiso"] == null)
                {
                    CatAdministrativoModels Administrativo = new CatAdministrativoModels();

                    LoginDatos LoginD = new LoginDatos();
                    Administrativo.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Administrativo.cuenta = user.Identity.Name;
                    Administrativo        = LoginD.ObtenerPermisos(Administrativo);
                    List <string> ListaPermiso = new List <string>();
                    foreach (var item in Administrativo.ListaPermisos)
                    {
                        ListaPermiso.Add(item.NombreUrl);
                    }
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
                else
                {
                    int           TipoUsuario  = (int)HttpContext.Current.Session["SessionTipoUsuario"];
                    List <string> ListaPermiso = new List <string>();
                    ListaPermiso = (List <string>)HttpContext.Current.Session["SessionListaPermiso"];

                    HttpContext.Current.Session["SessionTipoUsuario"]  = TipoUsuario;
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
            }
        }
 public ActionResult Index(UsuarioModels model, string returnUrl)
 {
     try
     {
         LoginDatos UD = new LoginDatos();
         model.conexion = Conexion;
         model          = UD.ValidarUsuario(model);
         if (model.opcion == 1)
         {
             FormsAuthentication.SignOut();
             _Usuario_Datos usuario_datos = new _Usuario_Datos();
             UsuarioModels  usuario       = new UsuarioModels();
             usuario.conexion = Conexion;
             usuario.cuenta   = model.id_usuario;
             int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName(usuario);
             System.Web.HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
             FormsAuthentication.SetAuthCookie(model.id_usuario, model.RememberMe);
             HttpCookie authCookie                  = FormsAuthentication.GetAuthCookie(model.id_usuario, model.RememberMe);
             FormsAuthenticationTicket ticket       = FormsAuthentication.Decrypt(authCookie.Value);
             List <string>             listaPermiso = new List <string>();
             foreach (var item in model.ListaPermisos)
             {
                 listaPermiso.Add(item.NombreUrl);
             }
             System.Web.HttpContext.Current.Session["SessionListaPermiso"] = listaPermiso;
             System.Web.HttpContext.Current.Session["NombreUsuario"]       = model.nombreCompleto;
             if (TipoUsario == 1)
             {
                 return(RedirectToAction("Index", "HomeAdmin", new { Area = "Admin" }));
             }
             else
             {
                 ModelState.AddModelError("", "No tienes permisos");
                 Session.Abandon();
                 Session.Clear();
                 Session.RemoveAll();
                 return(View(model));
             }
         }
         else if (model.opcion == 2)
         {
             ModelState.AddModelError("", "Usuario no existe");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else if (model.opcion == 3)
         {
             ModelState.AddModelError("", "Error de Contraseña");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else if (model.opcion == 4)
         {
             ModelState.AddModelError("", "El usuario tiene que ser de tipo. Administrador");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else
         {
             ModelState.AddModelError("", "El usuario o contraseña son incorrectos!!.");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
     }
     catch (Exception ex)
     {
         ModelState.AddModelError("", "Contacte a soporte técnico. " + ex.Message);
         Session.Abandon();
         Session.Clear();
         Session.RemoveAll();
         return(View(model));
     }
 }
Пример #8
0
    protected void btnEntrar_Click(object sender, EventArgs e)
    {
        //Instancias
        //Clase Conexion
        Conexion obj_Conexion = new Conexion();
        //Clase LoginDatos
        LoginDatos obj_Login = new LoginDatos();
        //Clase de Security
        Security obj_secDatos;

        //**
        //Inicio TRY
        try
        {
            //se recuperan valores ingresados por el usuario
            //nombre de usuario
            string sUsuario = "";
            //contraseña
            string sPassword = "";
            //*********************************

            //se agrega el valor de los campos a los metodos set
            obj_Login.gssUsuario  = sUsuario;
            obj_Login.gssPassword = sPassword;
            //*****

            obj_Login.vValidaUsuario(obj_Login);



            if (obj_Login.gsiResultado == 1)
            {
                //manda llamar la función de javaScript de abrir alerta y redireccionar
                ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(" + obj_Login.gsiResultado + ", \" " + obj_Login.gssMensaje + "\");/*setTimeout(function(){window.location.href='Vista/Inicio/Inicio.aspx';},0)*/}</script>");
                /****************************************************************/
                //se guardan las variables de sesión
                //Id de usuario
                //se encripta
                obj_secDatos          = new Security(obj_Login.gsiIdUsuario.ToString());
                Session["iIdUsuario"] = obj_secDatos.Encriptar();
                //
                //Tipo de Usuario
                //se encripta
                obj_secDatos            = new Security(obj_Login.gsiTipoUsuario.ToString());
                Session["iTipoUsuario"] = obj_secDatos.Encriptar();
                //Nombre de Usuario
                //se encripta
                string NombreUsuario = obj_Login.gssNombre + " " + obj_Login.gssApePat + " " + obj_Login.gssApeMat;
                obj_secDatos             = new Security(NombreUsuario);
                Session["NombreUsuario"] = obj_secDatos.Encriptar();

                string a = Session["NombreUsuario"].ToString();

                obj_secDatos = new Security(a);

                string d = obj_secDatos.DesEncriptar();
                //se redirecciona a la pagina de inicio
                Response.Redirect("Vista/Inicio/Inicio.aspx", false);
                /**************************************************/
            }
            else if (obj_Login.gsiResultado == 4)
            {
                //manda llamar la funcion de javaScript de abrir alerta
                ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{/*$.notificacionMsj(" + obj_Login.gsiResultado + ", \" " + obj_Login.gssMensaje + "\");*/" +
                                                   "fn_abreDialogCambioPass('" + obj_Login.gssContenido + "','Cambio de contraseña','javaScript:alert(" + obj_Login.gsiIdUsuario + ")');$('#txtCambioPassword').val('');$('#atxtRepitePass').val('');}</script>");
                /****************************************************************/

                //atxtUsuarioCambioPassword.Text = obj_Login.gssUsuario;
                //ahiddenId.Value = obj_Login.gsiAccion.ToString();
                //ahiddenNombre.Value = obj_Login.gssUsuario;
            }
            else
            {
                //manda llamar la funcion de javaScript de abrir alerta
                ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(" + obj_Login.gsiResultado + ", \" " + obj_Login.gssMensaje + "\");}</script>");
                /****************************************************************/
            }
        }
        /********/
        /*Inicio CATCH*/
        catch (Exception ex)
        {
            //manda llamar la funcion de javaScript de abrir alerta
            ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{ $.notificacionMsj(3, 'Lo sentimos, ha sucedido un error de tipo <b>EXEPCIÓN</b> comunícate con el departamento de TI, Error:" + ex.Message + "');}</script>");
            /****************************************************************/
        }
        /**********/
    }
Пример #9
0
    public static LoginDatos fn_cambiaPassInicio(string sUsuario, string sPassword, int iAccion)
    { //***********************************************************/
        //Instancias
        //Clase Conexion
        Conexion obj_Conexion = new Conexion();
        //Clase Login_Datos
        LoginDatos obj_login = new LoginDatos();
        //Clase de Security
        Security obj_secDatos;

        //Inicio TRY
        try
        {
            //se agrega el valor de los campos a los metodos set
            obj_login.gssUsuario  = sUsuario;
            obj_login.gssPassword = sPassword;
            obj_login.gsiAccion   = iAccion;
            //*****
            obj_login.vCambiaPassword(obj_login);

            if (obj_login.gsiResultado == 1)
            {
                obj_login.vValidaUsuario(obj_login);
                if (obj_login.gsiResultado == 1)
                {
                    //se guardan las Variables de sesion
                    //Id de usuario
                    //se encripta
                    obj_secDatos = new Security(obj_login.gsiIdUsuario.ToString());
                    HttpContext.Current.Session["iIdUsuario"] = obj_secDatos.Encriptar();
                    //
                    //Tipo de Usuario
                    //se encripta
                    obj_secDatos = new Security(obj_login.gsiTipoUsuario.ToString());
                    HttpContext.Current.Session["iTipoUsuario"] = obj_secDatos.Encriptar();
                    //Nombre de Usuario
                    //se encripta
                    string NombreUsuario = obj_login.gssNombre + " " + obj_login.gssApePat + " " + obj_login.gssApeMat;
                    obj_secDatos = new Security(NombreUsuario);
                    HttpContext.Current.Session["NombreUsuario"] = obj_secDatos.Encriptar();
                }
                else if (obj_login.gsiResultado == 4)
                {
                }
                else
                {
                }
            }
            else
            {
            }
        }
        /********/
        //inicio catch
        catch (Exception ex)
        {
            //se manda resultado
            obj_login.gsiResultado = 3;
            obj_login.gssMensaje   = "Error al realizar cambio de contraseña: " + ex.Message;
        }
        //se retorna respuesta
        return(obj_login);
    }
Пример #10
0
    public static LoginDatos fn_validaDatosCambioPassCaptcha(string sUsuario, string sCaptcha)
    {
        //se declaran variables
        LoginDatos obj_login = new LoginDatos();

        //Inicio try
        try
        {
            //Instancias
            Security obj_secVariables;
            Conexion obj_conexion = new Conexion();
            //se crea query
            string sQuery = "Select count(*) from tb_Usuarios where sUsuario ='" + sUsuario + "'";
            //se ejecuta query
            string[] srespuesta = obj_conexion.ejecutarConsultaRegistroSimple(sQuery);
            //se valida resultado
            if (srespuesta[0] == "1")
            {
                if (int.Parse(srespuesta[1]) > 0)
                {
                    /*se recupera el codigo captcha de session encriptado*/
                    string sCaptchaEncry = HttpContext.Current.Session["CaptchaCode"].ToString();
                    /****************************************************/

                    /*Instancia a la clase security y se manda como parametro el codigo encryptado*/
                    Security obj_SecCaptcha = new Security(sCaptchaEncry);
                    /***********************************************************************/

                    /*Se recupera el captcha de sesión desencriptado*/
                    string sCaptchaDes = obj_SecCaptcha.DesEncriptar();
                    /************************************************/

                    //se valida que sea el mismo captcha
                    if (sCaptcha == sCaptchaDes)
                    {
                        //se settean las variables
                        obj_login.gssUsuario  = sUsuario;
                        obj_login.gssPassword = obj_login.fn_CreaNuevaPassword();
                        obj_login.gsiAccion   = 1;
                        /*Se manda llamar al metodo de Cambiar contraseña*/
                        obj_login.vCambiaPassword(obj_login);
                        /*********************************************************/
                        //se valida el resultado del cambio de la contraseña
                        if (obj_login.gsiResultado == 1)
                        {
                            //se manda correo
                            obj_login.vGeneraCorreo(obj_login);
                        }
                    }
                    else
                    {
                        //se manda resultado
                        obj_login.gsiResultado = 2;
                        obj_login.gssMensaje   = "El codigo captcha no es el correcto";
                    }
                }
                else
                {
                    //se manda resultado
                    obj_login.gsiResultado = 2;
                    obj_login.gssMensaje   = "El usuario ingresado no existe.";
                }
            }
            else
            {
                //se manda resultado
                obj_login.gsiResultado = 3;
                obj_login.gssMensaje   = "Error al recuperar usuari: " + srespuesta[0];
            }
        }
        //inicio catch
        catch (Exception ex)
        {
            //se manda resultado
            obj_login.gsiResultado = 3;
            obj_login.gssMensaje   = "Error al recuperar usuario: " + ex.Message;
        }
        //se retorna respuesta
        return(obj_login);
    }
Пример #11
0
    public void vCambioPassword(object sender, EventArgs e)
    {
        try
        {
            /*Instancia a la clase conexion*/
            Conexion con = new Conexion();
            /******************************/


            //se crea objeto de respuesta
            LoginDatos obj_Login = new LoginDatos();
            //*************

            /*se recupera el usuario y captcha ingresados por el usuario*/
            string sUsuario = "";
            string sCaptcha = "";
            /***********************************************************/

            /*se recupera el codigo captcha de session encriptado*/
            string sCaptchaEncry = Session["CaptchaCode"].ToString();
            /****************************************************/

            /*Instancia a la clase security y se manda como parametro el codigo encryptado*/
            Security obj_SecCaptcha = new Security(sCaptchaEncry);
            /***********************************************************************/

            /*Se recupera el captcha de sesión desencriptado*/
            string sCaptchaDes = obj_SecCaptcha.DesEncriptar();
            /************************************************/

            /*Se valida que el usuario haya introducido la captcha correcta*/
            /*Si es correcta*/
            if (sCaptcha == sCaptchaDes)
            {
                //se settean las variables
                obj_Login.gssUsuario  = sUsuario;
                obj_Login.gssPassword = rsNuevaPassword();
                obj_Login.gsiAccion   = 1;
                /*Se manda llamar al metodo de Cambiar contraseña*/
                obj_Login.vCambiaPassword(obj_Login);
                /*********************************************************/

                if (obj_Login.gsiResultado == 1)
                {
                    obj_Login.vGeneraCorreo(obj_Login);
                    if (obj_Login.gsiResultado == 1)
                    {
                        //manda llamar la función de javaScript de abrir Dialog
                        ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(1,'Cambio de contraseña exitoso');$('#hdvConfirmacion').modal('toggle');}</script>");
                        /****************************************************************/
                    }
                    else
                    {
                        //manda llamar la función de javaScript de abrir Dialog
                        ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(\"" + obj_Login.gsiResultado + "\",\"" + obj_Login.gssMensaje + "\");$('#hdvDialogCambioPass').modal('show');}</script>");
                        /****************************************************************/
                    }
                }
                else
                {
                    //manda llamar la función de javaScript de abrir Dialog
                    ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(\"" + obj_Login.gsiResultado + "\",\"" + obj_Login.gssMensaje + "\");$('#hdvDialogCambioPass').modal('show');}</script>");
                    /****************************************************************/
                }
                /*******************************************************************************************************************************************************************************************************/
            }
            //Si el captcha no es correcto
            else
            {
                /*se limpian las cajas de texto*/
                //atxtUsuario.Text = "";
                //atxtCaptcha.Text = "";
                /***********************************************************/

                //manda llamar la funcion de javaScript de abrir Dialog
                ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(2,'El código ingresado no es el correcto intenta nuevamente.');$('#hdvDialogCambioPass').modal('show');}</script>");
                /****************************************************************/
                /**********************************************************************************************************************************************************************************************/
            }
        }
        catch (Exception ex)
        {
            /*se limpian las cajas de texto*/
            //atxtUsuario.Text = "";
            //atxtCaptcha.Text = "";
            /***********************************************************/
            //manda llamar la funcion de javaScript de abrir Dialog
            ClientScript.RegisterStartupScript(this.GetType(), "funcion", "<script>{$.notificacionMsj(2,'Error al realizar cambio de contraseña: " + ex.Message + "');$('#hdvDialogCambioPass').modal('show');}</script>");
            /****************************************************************/
        }
    }
Пример #12
0
 public async Task <RespuestaLogin> Login([FromBody] LoginDatos model)
 {
     return(await _seguridadBiz.Login(model));
 }
Пример #13
0
 public Mensaje PostLogin(LoginDatos datos)
 {
     return(GetLogin(datos.Usuario, datos.Contrasena));
 }
        public ActionResult Index(CatAdministrativoModels model, string returnUrl)
        {
            LoginDatos UD = new LoginDatos();

            model.conexion = Conexion;
            model          = UD.ValidarUsuario(model);
            if (model.opcion == 1)
            {
                FormsAuthentication.SignOut();
                UsuarioDatos  usuario_datos = new UsuarioDatos();
                UsuarioModels usuario       = new UsuarioModels();
                usuario.conexion = Conexion;
                usuario.cuenta   = model.id_administrativo;
                int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName2(usuario);
                System.Web.HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
                FormsAuthentication.SetAuthCookie(model.id_administrativo, model.RememberMe);
                HttpCookie authCookie                  = FormsAuthentication.GetAuthCookie(model.id_administrativo, model.RememberMe);
                FormsAuthenticationTicket ticket       = FormsAuthentication.Decrypt(authCookie.Value);
                List <string>             listaPermiso = new List <string>();
                foreach (var item in model.ListaPermisos)
                {
                    listaPermiso.Add(item.NombreUrl);
                }
                System.Web.HttpContext.Current.Session["SessionListaPermiso"] = listaPermiso;
                //AdministrativoPermisoJson Json = new AdministrativoPermisoJson { NombreURl = listaPermiso};
                //string userDataString = JsonConvert.SerializeObject(Json);
                //FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(TipoUsario, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, userDataString);
                //authCookie.Value = FormsAuthentication.Encrypt(newTicket);
                //Response.Cookies.Add(authCookie);
                string id_tipoUsuario = usuario_datos.ObtenerTipoUsuarioByUserName(usuario);
                if (id_tipoUsuario == "3")
                {
                    return(RedirectToAction("Index", "HomeAdmin", new { Area = "Admin" }));
                }
                else if (id_tipoUsuario == "1")
                {
                    return(RedirectToAction("Index", "HomeProfesor", new { Area = "Profesor" }));
                }
                else
                {
                    ModelState.AddModelError("", "No tienes permisos");
                    Session.Abandon();
                    Session.Clear();
                    Session.RemoveAll();
                    return(View(model));
                }
            }
            else if (model.opcion == 2)
            {
                ModelState.AddModelError("", "Usuario no existe");
                Session.Abandon();
                Session.Clear();
                Session.RemoveAll();
                return(View(model));
            }
            else if (model.opcion == 3)
            {
                ModelState.AddModelError("", "Error de Contraseña");
                Session.Abandon();
                Session.Clear();
                Session.RemoveAll();
                return(View(model));
            }
            else if (model.opcion == 4)
            {
                ModelState.AddModelError("", "El usuario tiene que ser de tipo. Administrador ó Profesor");
                Session.Abandon();
                Session.Clear();
                Session.RemoveAll();
                return(View(model));
            }
            else
            {
                ModelState.AddModelError("", "El usuario o contraseña son incorrectos!!.");
                Session.Abandon();
                Session.Clear();
                Session.RemoveAll();
                return(View(model));
            }
        }