コード例 #1
0
        private static IHttpAction GetSiteStartPageAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
        {
            if (contextNode == null)
            {
                return(null);
            }
            if (!contextNode.GetNodeType().IsInstaceOfOrDerivedFrom("Site"))
            {
                return(null);
            }
            //var startPage = portalContext.Site.StartPage;
            Page startPage = null;

            using (new SystemAccount())
            {
                var contextSite = Node.Load <Site>(contextNode.Id);
                if (contextSite != null && (portalContext.ActionName == null || portalContext.ActionName.ToLower() == "browse"))
                {
                    startPage = contextSite.StartPage;
                }
                if (startPage == null)
                {
                    return(null);
                }
            }

            var relPath = startPage.Path.Replace(portalContext.Site.Path, "");

            return(factory.CreateRedirectAction(portalContext, contextNode, null, relPath, false, true));
        }
コード例 #2
0
        private static IHttpAction GetFirstRunAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
        {
            //TODO: this is for WebPI first time execution, not really side by side friendly reconsideration needed.
            if (portalContext.Site == null)
            {
                Uri    uri         = portalContext.OwnerHttpContext.Request.Url;
                string uriPath     = uri.GetComponents(UriComponents.Path, UriFormat.Unescaped);
                string installTest = Path.Combine(uri.Authority, "/install/").ToLower();
                string lowerUrl    = uri.ToString().ToLower();

                if (!lowerUrl.EndsWith("/default.aspx") &&
                    !lowerUrl.EndsWith("/config.aspx") &&
                    lowerUrl.IndexOf(installTest) < 0 &&
                    !uriPath.EndsWith(".axd"))
                {
                    var appName = HttpRuntime.AppDomainAppVirtualPath;
                    if (!appName.EndsWith("/"))
                    {
                        appName = appName + "/";
                    }

                    return(factory.CreateRedirectAction(portalContext, contextNode, null,
                                                        appName + "IISConfig/Config.aspx", false, false));
                }
            }
            return(null);
        }
コード例 #3
0
        private static IHttpAction GetSmartUrlAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
        {
            string smartUrl = GetSmartUrl(portalContext);

            if (smartUrl != null)
            {
                return(factory.CreateRedirectAction(portalContext, contextNode, null, smartUrl, false, true));
            }
            return(null);
        }
コード例 #4
0
        private static IHttpAction GetExternalPageAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode, string actionName, string appNodePath)
        {
            if (contextNode == null)
            {
                return(null);
            }
            if (actionName != null)
            {
                return(null);
            }
            if (appNodePath != null)
            {
                return(null);
            }

            string outerUrl = null;

            AccessProvider.ChangeToSystemAccount();
            try
            {
                Page page = Node.LoadNode(contextNode.Id) as Page;
                if (page != null)
                {
                    if (Convert.ToBoolean((page["IsExternal"])))
                    {
                        outerUrl = page.GetProperty <string>("OuterUrl");
                    }
                }
            }
            finally
            {
                AccessProvider.RestoreOriginalUser();
            }
            if (outerUrl != null)
            {
                return(factory.CreateRedirectAction(portalContext, contextNode, null, outerUrl, false, true));
            }
            return(null);
        }
コード例 #5
0
        private static IHttpAction GetExternalPageAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode, string actionName, string appNodePath)
        {
            if (contextNode == null)
                return null;
            if (actionName != null)
                return null;
            if (appNodePath != null)
                return null;

            string outerUrl = null;
            AccessProvider.ChangeToSystemAccount();
            try
            {
                Page page = Node.LoadNode(contextNode.Id) as Page;
                if (page != null)
                    if (Convert.ToBoolean((page["IsExternal"])))
                        outerUrl = page.GetProperty<string>("OuterUrl");
            }
            finally
            {
                AccessProvider.RestoreOriginalUser();
            }
            if (outerUrl != null)
                return factory.CreateRedirectAction(portalContext, contextNode, null, outerUrl, false, true);
            return null;
        }
コード例 #6
0
 private static IHttpAction GetSmartUrlAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
 {
     string smartUrl = GetSmartUrl(portalContext);
     if (smartUrl != null)
         return factory.CreateRedirectAction(portalContext, contextNode, null, smartUrl, false, true);
     return null;
 }
コード例 #7
0
        private static IHttpAction GetSiteStartPageAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
        {
            if (contextNode == null)
                return null;
            if (!contextNode.GetNodeType().IsInstaceOfOrDerivedFrom("Site"))
                return null;
            //var startPage = portalContext.Site.StartPage;
            Page startPage = null;

            using (new SystemAccount())
            {
                var contextSite = Node.Load<Site>(contextNode.Id);
                if (contextSite != null && (portalContext.ActionName == null || portalContext.ActionName.ToLower() == "browse"))
                    startPage = contextSite.StartPage;
                if (startPage == null)
                    return null;
            }

            var relPath = startPage.Path.Replace(portalContext.Site.Path, "");
            return factory.CreateRedirectAction(portalContext, contextNode, null, relPath, false, true);
        }
コード例 #8
0
        private static IHttpAction GetFirstRunAction(IHttpActionFactory factory, PortalContext portalContext, NodeHead contextNode)
        {
            //TODO: this is for WebPI first time execution, not really side by side friendly reconsideration needed.
            if (portalContext.Site == null)
            {
                Uri uri = portalContext.OwnerHttpContext.Request.Url;
                string uriPath = uri.GetComponents(UriComponents.Path, UriFormat.Unescaped);
                string installTest = Path.Combine(uri.Authority, "/install/").ToLower();
                string lowerUrl = uri.ToString().ToLower();

                if (!lowerUrl.EndsWith("/default.aspx") &&
                    !lowerUrl.EndsWith("/config.aspx") &&
                    lowerUrl.IndexOf(installTest) < 0 &&
                    !uriPath.EndsWith(".axd"))
                {
                    var appName = HttpRuntime.AppDomainAppVirtualPath;
                    if (!appName.EndsWith("/"))
                        appName = appName + "/";

                    return factory.CreateRedirectAction(portalContext, contextNode, null, 
                        appName + "IISConfig/Config.aspx", false, false);
                }
            }
            return null;
        }