protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
            if (authCookie != null)
            {
                // Get the forms authentication ticket.
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                var identity = new GenericIdentity(authTicket.Name, "Forms");
                var principal = new MyPrincipalUser(identity);

                // Get the custom user data encrypted in the ticket.
                string userData = ((FormsIdentity)(Context.User.Identity)).Ticket.UserData;
                using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
                {
                    Usuarios oUser = oDb.Usuarios.Where(usr => usr.User == Context.User.Identity.Name).FirstOrDefault();
                    principal.Usuario = oUser;
                }

                // Set the context user.
                Context.User = principal;
            }
            else
            {
                if (HttpContext.Current.Request.Url.PathAndQuery != "/Usuarios/Register")
                {
                    HttpContext.Current.RewritePath("~/Usuarios/Login",false);
                }
            }
        }
        public bool FueAfiliado()
        {
            bool bRet = false;
            using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
            {
                bRet = oDb.Afiliados.Where(x => x.IdPersona == this.IdPersona).Count() > 0;

            }
            return bRet;
        }
        public bool EsAfiliado()
        {
            bool bRet = false;
            using(DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
            {
                bRet = oDb.Afiliados.Where(x => x.IdPersona == this.IdPersona && x.FechaHasta == null && x.Active == true).Count() > 0;

            }
            return bRet;
        }
 public static int NumeroDisponibleSiguiente()
 {
     using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
     {
         List<Afiliados> oAfiliado =  oDb.Afiliados.Where(x=> x.Active).OrderByDescending(x => x.NroAfiliado).ToList();
         if (oAfiliado.Count == 0)
             return 1;
         else
             return oAfiliado.First().NroAfiliado + 1;
     }
 }
 public int GetIdVinculoReciproco()
 {
     int IdVinculo = 0;
     using(DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
     {
         try
         {
             IdVinculo = oDb.VinculoFamiliar.Where(x => x.IdPersona == this.IdFamiliar && x.IdFamiliar == this.IdPersona && x.TipoVinculoFamiliar.IdTipoVinculoFamiliar == this.TipoVinculoFamiliar.IdTipoVinculoReciproco).FirstOrDefault().IdVinculoFamiliar;
         }
         catch
         {
             IdVinculo = 0;
         }
     }
     return IdVinculo;
 }
 public byte? GetIdTipoVinculoReciproco()
 {
     byte? IdTipoVinculo = 0;
     using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
     {
         try
         {
             IdTipoVinculo = oDb.TipoVinculoFamiliar.Where(x => x.IdTipoVinculoFamiliar == this.IdTipoVinculoFamiliar).FirstOrDefault().IdTipoVinculoReciproco;
         }
         catch
         {
             IdTipoVinculo = 0;
         }
     }
     return IdTipoVinculo;
 }
        private bool IsValid(string sUser, string sPass)
        {
            bool IsValid = false;

            using (DataBaseAEJBAEntities db = new DataBaseAEJBAEntities())
            {
                using (MD5 md5Hash = MD5.Create())
                {
                    var oUser = db.Usuarios.Where(x => x.User == sUser && x.Active == true).FirstOrDefault();
                    if (oUser != null)
                    {
                        if (VerifyMd5Hash(md5Hash, sPass + oUser.Seed, oUser.HashPassword))
                        {
                            IsValid = true;
                            db.LogIn(oUser.UserId);
                        }
                    }
                }

            }
            return IsValid;
        }
 public ActionResult LogOut()
 {
     FormsAuthentication.SignOut();
     using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
     {
         Usuarios oUsuario = oDb.Usuarios.Where(x => x.User == User.Identity.Name).FirstOrDefault();
         if (oUsuario != null)
         {
             db.LogOut(oUsuario.UserId);
         }
     }
     return RedirectToAction("Index", "Home");
 }
 private bool UserHasRole(string username,string rolename)
 {
     bool bRet = false;
     using (DataBaseAEJBAEntities oDb = new DataBaseAEJBAEntities())
     {
         bRet = oDb.Roles.Where(rol => rol.Descripcion == rolename && rol.UsuariosRoles.Where(ur => ur.Usuarios.User == username).Any()).Count() > 0;
     }
     return bRet;
 }