Example #1
0
        public string ApplyAppPathModifier(string virtualPath)
        {
            if (virtualPath == null)
            {
                return(null);
            }

            if (virtualPath.Length == 0)
            {
                return(context.Request.RootVirtualDir);
            }

            if (UrlUtils.IsRelativeUrl(virtualPath))
            {
                virtualPath = UrlUtils.Combine(context.Request.RootVirtualDir, virtualPath);
            }
            else if (UrlUtils.IsRooted(virtualPath))
            {
                virtualPath = UrlUtils.Canonic(virtualPath);
            }

            bool cookieless = false;

#if NET_2_0
            SessionStateSection config = WebConfigurationManager.GetWebApplicationSection("system.web/sessionState") as SessionStateSection;
            cookieless = SessionStateModule.IsCookieLess(context, config);
#else
            SessionConfig config = HttpContext.GetAppConfig("system.web/sessionState") as SessionConfig;
            cookieless = config.CookieLess;
#endif
            if (!cookieless)
            {
                return(virtualPath);
            }

            if (app_path_mod != null && virtualPath.IndexOf(app_path_mod) < 0)
            {
                if (UrlUtils.HasSessionId(virtualPath))
                {
                    virtualPath = UrlUtils.RemoveSessionId(VirtualPathUtility.GetDirectory(virtualPath), virtualPath);
                }
                return(UrlUtils.InsertSessionId(app_path_mod, virtualPath));
            }

            return(virtualPath);
        }
        public static void GetDirectory5_Load(Page p)
        {
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefilenoextension"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/////direc///somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~\\\\direc\\///somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefilenoextension/"));
            Assert.AreEqual("/", VPU.GetDirectory("~/"), "~/");
            Assert.AreEqual("/", VPU.GetDirectory("~"), "~");

            Assert.AreEqual("/", VPU.GetDirectory("~/dir1/.."), "/dir1/..");
            Assert.AreEqual("/", VPU.GetDirectory("~/dir1/../"), "/dir1/../");
            Assert.AreEqual("~/", VPU.GetDirectory("~/dir1/../dir2"), "/dir1/../dir2");
            Assert.AreEqual("~/", VPU.GetDirectory("~/dir1/../dir2/"), "/dir1/../dir2/");
            Assert.AreEqual("~/dir2/", VPU.GetDirectory("~/dir1/../dir2/somefile.aspx"));

            Assert.AreEqual("/dir1/", VPU.GetDirectory("~/../dir1/dir2"), "~/../dir1");
            Assert.AreEqual("/dir1/", VPU.GetDirectory("~/../dir1/dir2/"), "~/../dir1/");
        }
        public void GetDirectory4()
        {
            Assert.AreEqual("/direc/", VPU.GetDirectory("/direc/somefilenoextension"));
            Assert.AreEqual("/direc/", VPU.GetDirectory("/direc/somefile.aspx"));
            Assert.AreEqual("/direc/", VPU.GetDirectory("/////direc///somefile.aspx"));
            Assert.AreEqual("/direc/", VPU.GetDirectory("\\\\direc\\///somefile.aspx"));
            Assert.AreEqual("/direc/", VPU.GetDirectory("/direc/somefilenoextension/"));
            Assert.AreEqual(null, VPU.GetDirectory("/"), "A3");

            Assert.AreEqual(null, VPU.GetDirectory("/dir1/.."), "/dir1/..");
            Assert.AreEqual(null, VPU.GetDirectory("/dir1/../"), "/dir1/../");
            Assert.AreEqual("/", VPU.GetDirectory("/dir1/../dir2"), "/dir1/../dir2");
            Assert.AreEqual("/", VPU.GetDirectory("/dir1/../dir2/"), "/dir1/../dir2/");
            Assert.AreEqual("/dir2/", VPU.GetDirectory("/dir1/../dir2/somefile.aspx"));

            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefilenoextension"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/////direc///somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~\\\\direc\\///somefile.aspx"));
            Assert.AreEqual("~/direc/", VPU.GetDirectory("~/direc/somefilenoextension/"));
        }
Example #4
0
        void Execute(string path, TextWriter writer, bool preserveForm, bool isTransfer)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }

            if (path.IndexOf(':') != -1)
            {
                throw new ArgumentException("Invalid path.");
            }

            string queryString = null;
            int    qmark       = path.IndexOf('?');

            if (qmark != -1)
            {
                queryString = path.Substring(qmark + 1);
                path        = path.Substring(0, qmark);
            }

            string exePath    = UrlUtils.Combine(context.Request.BaseVirtualDir, path);
            bool   cookieless = false;

#if NET_2_0
            SessionStateSection config = WebConfigurationManager.GetWebApplicationSection("system.web/sessionState") as SessionStateSection;
            cookieless = SessionStateModule.IsCookieLess(context, config);
#else
            SessionConfig config = HttpContext.GetAppConfig("system.web/sessionState") as SessionConfig;
            cookieless = config.CookieLess;
#endif
            if (cookieless)
            {
                exePath = UrlUtils.RemoveSessionId(VirtualPathUtility.GetDirectory(exePath), exePath);
            }

            IHttpHandler handler = context.ApplicationInstance.GetHandler(context, exePath, true);
            Execute(handler, writer, preserveForm, exePath, queryString, isTransfer, true);
        }
 public void GetExtension3()
 {
     Assert.AreEqual("", VPU.GetExtension("/direc/somefilenoextension"));
     Assert.AreEqual("", VPU.GetExtension("/"));
     Assert.AreEqual("/direc/", VPU.GetDirectory("/////direc///somefile.aspx"));
 }
 public void GetDirectory3()
 {
     VPU.GetDirectory("hola");
 }
 public void GetDirectory2()
 {
     VPU.GetDirectory("");
 }
 public void GetDirectory1()
 {
     VPU.GetDirectory(null);
 }