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/")); }
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); }