protected override void OnLoad(EventArgs e) { Config.LoadConfig(); if (!Config.Enabled) { XmlResponseHandler.SendError(Response, 1, "This connector is disabled. Please check the \"editor/filemanager/connectors/aspx/config.aspx\" file."); return; } // Get the main request information. string sCommand = Request.QueryString["Command"]; string sResourceType = Request.QueryString["Type"]; string sCurrentFolder = Request.QueryString["CurrentFolder"]; if (sCommand == null || sResourceType == null || sCurrentFolder == null) { XmlResponseHandler.SendError(Response, 1, "Invalid request."); return; } // Check if it is an allowed type. if (!Config.CheckIsTypeAllowed(sResourceType)) { XmlResponseHandler.SendError(Response, 1, "Invalid resource type specified."); return; } // Check the current folder syntax (must begin and start with a slash). if (!sCurrentFolder.EndsWith("/")) { sCurrentFolder += "/"; } if (!sCurrentFolder.StartsWith("/")) { sCurrentFolder = "/" + sCurrentFolder; } // Check for invalid folder paths (..). if (sCurrentFolder.IndexOf("..") >= 0) { XmlResponseHandler.SendError(Response, 102, ""); return; } // File Upload doesn't have to return XML, so it must be intercepted before anything. if (sCommand == "FileUpload") { this.FileUpload(sResourceType, sCurrentFolder, false); return; } XmlResponseHandler oResponseHandler = new XmlResponseHandler(this, Response); XmlNode oConnectorNode = oResponseHandler.CreateBaseXml(sCommand, sResourceType, sCurrentFolder); // Execute the required command. switch (sCommand) { case "GetFolders": this.GetFolders(oConnectorNode, sResourceType, sCurrentFolder); break; case "GetFoldersAndFiles": this.GetFolders(oConnectorNode, sResourceType, sCurrentFolder); this.GetFiles(oConnectorNode, sResourceType, sCurrentFolder); break; case "CreateFolder": this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder); break; } oResponseHandler.SendResponse(); }
protected override void OnLoad(EventArgs e) { base.Config.LoadConfig(); if (!base.Config.Enabled) { XmlResponseHandler.SendError(base.Response, 1, "This connector is disabled. Please check the \"editor/filemanager/connectors/aspx/config.ascx\" file."); } else { string command = base.Request.QueryString["Command"]; string typeName = base.Request.QueryString["Type"]; string currentFolder = base.Request.QueryString["CurrentFolder"]; if (((command == null) || (typeName == null)) || (currentFolder == null)) { XmlResponseHandler.SendError(base.Response, 1, "Invalid request."); } else if (!base.Config.CheckIsTypeAllowed(typeName)) { XmlResponseHandler.SendError(base.Response, 1, "Invalid resource type specified."); } else { if (!currentFolder.EndsWith("/")) { currentFolder = currentFolder + "/"; } if (!currentFolder.StartsWith("/")) { currentFolder = "/" + currentFolder; } if ((currentFolder.IndexOf("..") >= 0) || (currentFolder.IndexOf(@"\") >= 0)) { XmlResponseHandler.SendError(base.Response, 0x66, ""); } else if (command == "FileUpload") { base.FileUpload(typeName, currentFolder, false); } else { XmlResponseHandler handler = new XmlResponseHandler(this, base.Response); XmlNode connectorNode = handler.CreateBaseXml(command, typeName, currentFolder); string str4 = command; if (str4 != null) { if (!(str4 == "GetFolders")) { if (str4 == "GetFoldersAndFiles") { this.GetFolders(connectorNode, typeName, currentFolder); this.GetFiles(connectorNode, typeName, currentFolder); } else if (str4 == "CreateFolder") { this.CreateFolder(connectorNode, typeName, currentFolder); } } else { this.GetFolders(connectorNode, typeName, currentFolder); } } handler.SendResponse(); } } } }