Exemple #1
0
        public static PortalAliasCollection GetPortalAliasLookup()
        {
            PortalAliasCollection objPortalAliasCollection = (PortalAliasCollection)DataCache.GetCache("GetPortalByAlias");

            try
            {
                if (objPortalAliasCollection == null)
                {
                    PortalAliasController objPortalAliasController = new PortalAliasController();
                    objPortalAliasCollection = objPortalAliasController.GetPortalAliases();
                    DataCache.SetCache("GetPortalByAlias", objPortalAliasCollection);
                }
            }
            catch (Exception exc)
            {
                // this is the first data access in Begin_Request and will catch any general connection issues
                HttpContext  objHttpContext = HttpContext.Current;
                StreamReader objStreamReader;
                objStreamReader = File.OpenText(objHttpContext.Server.MapPath("~/500.htm"));
                string strHTML = objStreamReader.ReadToEnd();
                objStreamReader.Close();
                strHTML = strHTML.Replace("[MESSAGE]", "ERROR: Could not connect to database.<br><br>" + exc.Message);
                objHttpContext.Response.Write(strHTML);
                objHttpContext.Response.End();
            }

            return(objPortalAliasCollection);
        }
Exemple #2
0
        public PortalAliasCollection GetPortalAliasByPortalID(int PortalID)
        {
            IDataReader dr = DotNetNuke.Data.DataProvider.Instance().GetPortalAliasByPortalID(PortalID);

            try
            {
                PortalAliasCollection objPortalAliasCollection = new PortalAliasCollection();
                while (dr.Read())
                {
                    PortalAliasInfo objPortalAliasInfo = new PortalAliasInfo();
                    objPortalAliasInfo.PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]);
                    objPortalAliasInfo.PortalID      = Convert.ToInt32(dr["PortalID"]);
                    objPortalAliasInfo.HTTPAlias     = Convert.ToString(dr["HTTPAlias"]);
                    objPortalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo);
                }
                return(objPortalAliasCollection);
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }
        }
        /// <summary>
        /// Gets the portal alias by portal.
        /// </summary>
        /// <param name="portalId">The portal id.</param>
        /// <param name="portalAlias">The portal alias.</param>
        /// <returns>Portal alias.</returns>
        public static string GetPortalAliasByPortal(int portalId, string portalAlias)
        {
            string retValue = "";

            //get the portal alias collection from the cache
            PortalAliasCollection portalAliasCollection = GetPortalAliasLookup();
            string httpAlias;
            bool   foundAlias = false;

            //Do a specified PortalAlias check first
            PortalAliasInfo objPortalAliasInfo = portalAliasCollection[portalAlias.ToLower()];

            if (objPortalAliasInfo != null)
            {
                if (objPortalAliasInfo.PortalID == portalId)
                {
                    //set the alias
                    retValue   = objPortalAliasInfo.HTTPAlias;
                    foundAlias = true;
                }
            }


            if (!foundAlias)
            {
                //searching from longest to shortest alias ensures that the most specific portal is matched first
                //In some cases this method has been called with "portalaliases" that were not exactly the real portal alias
                //the startswith behaviour is preserved here to support those non-specific uses
                IEnumerable <String> aliases = portalAliasCollection.Keys.Cast <String>().OrderByDescending(k => k.Length);
                foreach (var currentAlias in aliases)
                {
                    // check if the alias key starts with the portal alias value passed in - we use
                    // StartsWith because child portals are redirected to the parent portal domain name
                    // eg. child = 'www.domain.com/child' and parent is 'www.domain.com'
                    // this allows the parent domain name to resolve to the child alias ( the tabid still identifies the child portalid )
                    objPortalAliasInfo = portalAliasCollection[currentAlias];
                    httpAlias          = objPortalAliasInfo.HTTPAlias.ToLower();
                    if (httpAlias.StartsWith(portalAlias.ToLower()) && objPortalAliasInfo.PortalID == portalId)
                    {
                        retValue = objPortalAliasInfo.HTTPAlias;
                        break;
                    }
                    if (httpAlias.StartsWith("www."))
                    {
                        httpAlias = httpAlias.Replace("www.", "");
                    }
                    else
                    {
                        httpAlias = string.Concat("www.", httpAlias);
                    }
                    if (httpAlias.StartsWith(portalAlias.ToLower()) && objPortalAliasInfo.PortalID == portalId)
                    {
                        retValue = objPortalAliasInfo.HTTPAlias;
                        break;
                    }
                }
            }
            return(retValue);
        }
        public PortalAliasCollection GetPortalAliasByPortalID(int PortalID)
        {
            var portalAliasCollection = new PortalAliasCollection();

            foreach (PortalAliasInfo alias in GetPortalAliasLookup().Values.Cast <PortalAliasInfo>().Where(alias => alias.PortalID == PortalID))
            {
                portalAliasCollection.Add(alias.HTTPAlias, alias);
            }

            return(portalAliasCollection);
        }
Exemple #5
0
        public PortalAliasCollection GetPortalAliases()
        {
            var aliasCollection = new PortalAliasCollection();

            foreach (var alias in this.GetPortalAliasesInternal().Values)
            {
                aliasCollection.Add(alias.HTTPAlias, alias);
            }

            return(aliasCollection);
        }
        public static PortalAliasCollection GetPortalAliasLookup()
        {
            var portalAliasCollection = new PortalAliasCollection();

            foreach (var kvp in TestablePortalAliasController.Instance.GetPortalAliases())
            {
                portalAliasCollection.Add(kvp.Key, kvp.Value);
            }

            return(portalAliasCollection);
        }
        public PortalAliasCollection GetPortalAliasByPortalID(int PortalID)
        {
            var portalAliasCollection = new PortalAliasCollection();

            foreach (PortalAliasInfo alias in GetPortalAliasLookup().Values.Cast<PortalAliasInfo>().Where(alias => alias.PortalID == PortalID))
            {
                portalAliasCollection.Add(alias.HTTPAlias, alias);
            }

            return portalAliasCollection;
        }
        public static PortalAliasCollection GetPortalAliasLookup()
        {
            var portalAliasCollection = new PortalAliasCollection();
            var aliasController       = new PortalAliasController();

            foreach (var kvp in aliasController.GetPortalAliasesInternal())
            {
                portalAliasCollection.Add(kvp.Key, kvp.Value);
            }

            return(portalAliasCollection);
        }
 public PortalAliasCollection GetPortalAliasByPortalID(int PortalID)
 {
     IDataReader dr = DotNetNuke.Data.DataProvider.Instance().GetPortalAliasByPortalID(PortalID);
     try
     {
         PortalAliasCollection objPortalAliasCollection = new PortalAliasCollection();
         while (dr.Read())
         {
             PortalAliasInfo objPortalAliasInfo = new PortalAliasInfo();
             objPortalAliasInfo.PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]);
             objPortalAliasInfo.PortalID = Convert.ToInt32(dr["PortalID"]);
             objPortalAliasInfo.HTTPAlias = Convert.ToString(dr["HTTPAlias"]);
             objPortalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo);
         }
         return objPortalAliasCollection;
     }
     finally
     {
         if (dr != null)
         {
             dr.Close();
         }
     }
 }
        /// <summary>
        /// Gets the portal aliases.
        /// </summary>
        /// <returns>Portal alias collection.</returns>
        public PortalAliasCollection GetPortalAliases()
        {
            IDataReader dr = DataProvider.Instance().GetPortalAliasByPortalID(-1);

            try
            {
                var portalAliasCollection = new PortalAliasCollection();
                while (dr.Read())
                {
                    var objPortalAliasInfo = new PortalAliasInfo
                    {
                        PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]),
                        PortalID      = Convert.ToInt32(dr["PortalID"]),
                        HTTPAlias     = Convert.ToString(dr["HTTPAlias"])
                    };
                    portalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo);
                }
                return(portalAliasCollection);
            }
            finally
            {
                CBO.CloseDataReader(dr, true);
            }
        }
        public static PortalAliasCollection GetPortalAliasLookup()
        {
            var portalAliasCollection = new PortalAliasCollection();
            foreach (var kvp in TestablePortalAliasController.Instance.GetPortalAliases())
            {
                portalAliasCollection.Add(kvp.Key, kvp.Value);
            }

            return portalAliasCollection;
        }
        public static PortalAliasCollection GetPortalAliasLookup()
        {
            var portalAliasCollection = new PortalAliasCollection();
            var aliasController = new PortalAliasController();
            foreach (var kvp in aliasController.GetPortalAliasesInternal())
            {
                portalAliasCollection.Add(kvp.Key, kvp.Value);
            }

            return portalAliasCollection;
        }
        /// <summary>
        /// Gets the portal alias info.
        /// </summary>
        /// <param name="PortalAlias">The portal alias.</param>
        /// <returns>Portal alias info</returns>
        public static PortalAliasInfo GetPortalAliasInfo(string PortalAlias)
        {
            string strPortalAlias;

            //try the specified alias first
            PortalAliasInfo objPortalAliasInfo = GetPortalAliasLookup(PortalAlias.ToLower());

            //domain.com and www.domain.com should be synonymous
            if (objPortalAliasInfo == null)
            {
                if (PortalAlias.ToLower().StartsWith("www."))
                {
                    //try alias without the "www." prefix
                    strPortalAlias = PortalAlias.Replace("www.", "");
                }
                else //try the alias with the "www." prefix
                {
                    strPortalAlias = string.Concat("www.", PortalAlias);
                }
                //perform the lookup
                objPortalAliasInfo = GetPortalAliasLookup(strPortalAlias.ToLower());
            }
            //allow domain wildcards
            if (objPortalAliasInfo == null)
            {
                //remove the domain prefix ( ie. anything.domain.com = domain.com )
                if (PortalAlias.IndexOf(".") != -1)
                {
                    strPortalAlias = PortalAlias.Substring(PortalAlias.IndexOf(".") + 1);
                }
                else //be sure we have a clean string (without leftovers from preceding 'if' block)
                {
                    strPortalAlias = PortalAlias;
                }
                if (objPortalAliasInfo == null)
                {
                    //try an explicit lookup using the wildcard entry ( ie. *.domain.com )
                    objPortalAliasInfo = GetPortalAliasLookup("*." + strPortalAlias.ToLower());
                }
                if (objPortalAliasInfo == null)
                {
                    //try a lookup using the raw domain
                    objPortalAliasInfo = GetPortalAliasLookup(strPortalAlias.ToLower());
                }
                if (objPortalAliasInfo == null)
                {
                    //try a lookup using "www." + raw domain
                    objPortalAliasInfo = GetPortalAliasLookup("www." + strPortalAlias.ToLower());
                }
            }
            if (objPortalAliasInfo == null)
            {
                //check if this is a fresh install ( no alias values in collection )
                PortalAliasCollection objPortalAliasCollection = GetPortalAliasLookup();
                if (!objPortalAliasCollection.HasKeys || (objPortalAliasCollection.Count == 1 && objPortalAliasCollection.Contains("_default")))
                {
                    //relate the PortalAlias to the default portal on a fresh database installation
                    DataProvider.Instance().UpdatePortalAlias(PortalAlias.ToLower().Trim('/'), UserController.GetCurrentUserInfo().UserID);
                    var objEventLog = new EventLogController();
                    objEventLog.AddLog("PortalAlias",
                                       PortalAlias,
                                       PortalController.GetCurrentPortalSettings(),
                                       UserController.GetCurrentUserInfo().UserID,
                                       EventLogController.EventLogType.PORTALALIAS_UPDATED);

                    //clear the cachekey "GetPortalByAlias" otherwise portalalias "_default" stays in cache after first install
                    DataCache.RemoveCache("GetPortalByAlias");
                    //try again
                    objPortalAliasInfo = GetPortalAliasLookup(PortalAlias.ToLower());
                }
            }
            return(objPortalAliasInfo);
        }
Exemple #14
0
        public static string GetPortalByID(int PortalId, string PortalAlias)
        {
            string retValue = "";

            // get the portal alias collection from the cache
            PortalAliasCollection objPortalAliasCollection = GetPortalAliasLookup();
            string strHTTPAlias;
            bool   bFound = false;

            //Do a specified PortalAlias check first
            PortalAliasInfo objPortalAliasInfo = objPortalAliasCollection[PortalAlias.ToLower()];

            if (objPortalAliasInfo != null)
            {
                if (objPortalAliasInfo.PortalID == PortalId)
                {
                    // set the alias
                    retValue = objPortalAliasInfo.HTTPAlias;
                    bFound   = true;
                }
            }

            //No match so iterate through the alias keys
            if (!bFound)
            {
                foreach (string key in objPortalAliasCollection.Keys)
                {
                    // check if the alias key starts with the portal alias value passed in - we use
                    // StartsWith because child portals are redirected to the parent portal domain name
                    // eg. child = 'www.domain.com/child' and parent is 'www.domain.com'
                    // this allows the parent domain name to resolve to the child alias ( the tabid still identifies the child portalid )
                    objPortalAliasInfo = objPortalAliasCollection[key];

                    strHTTPAlias = objPortalAliasInfo.HTTPAlias.ToLower();
                    if (strHTTPAlias.StartsWith(PortalAlias.ToLower()) == true && objPortalAliasInfo.PortalID == PortalId)
                    {
                        // set the alias
                        retValue = objPortalAliasInfo.HTTPAlias;
                        goto endOfForLoop;
                    }

                    // domain.com and www.domain.com should be synonymous
                    if (strHTTPAlias.StartsWith("www."))
                    {
                        // try alias without the "www." prefix
                        strHTTPAlias = strHTTPAlias.Replace("www.", "");
                    }
                    else // try the alias with the "www." prefix
                    {
                        strHTTPAlias = string.Concat("www.", strHTTPAlias);
                    }
                    if (strHTTPAlias.StartsWith(PortalAlias.ToLower()) == true && objPortalAliasInfo.PortalID == PortalId)
                    {
                        // set the alias
                        retValue = objPortalAliasInfo.HTTPAlias;
                        goto endOfForLoop;
                    }
                }
endOfForLoop:
                1.GetHashCode(); //nop
            }

            return(retValue);
        }
Exemple #15
0
		/// <summary>
		/// Gets the portal aliases.
		/// </summary>
		/// <returns>Portal alias collection.</returns>
        public PortalAliasCollection GetPortalAliases()
        {
            IDataReader dr = DataProvider.Instance().GetPortalAliasByPortalID(-1);
            try
            {
                var portalAliasCollection = new PortalAliasCollection();
                while (dr.Read())
                {
                    var objPortalAliasInfo = new PortalAliasInfo
                                                 {
                                                     PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]), 
                                                     PortalID = Convert.ToInt32(dr["PortalID"]), 
                                                     HTTPAlias = Convert.ToString(dr["HTTPAlias"])
                                                 };
                    portalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo);
                }
                return portalAliasCollection;
            }
            finally
            {
                CBO.CloseDataReader(dr, true);
            }
        }