public ActionResult DownloadFile(string pp) { ManagementConsoleAuthentication.VerifyTokenCookie(this); pp = pp ?? string.Empty; var physicalPath = Encoding.UTF8.GetString(EncryptedBase64.FromEncryptedBase64String(pp)); return(File(physicalPath, "application/octet-stream", Path.GetFileName(physicalPath))); }
public ActionResult BrowseDirectory(string pp) { ManagementConsoleAuthentication.VerifyTokenCookie(this); pp = pp ?? string.Empty; var physicalPath = Encoding.UTF8.GetString(EncryptedBase64.FromEncryptedBase64String(pp)); if (string.IsNullOrEmpty(physicalPath)) { physicalPath = Server.MapPath("~"); } StringBuilder sb = new StringBuilder(1024); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); sb.Append("<h2>" + HttpUtility.HtmlEncode(physicalPath) + "</h2>"); sb.Append("<a href=\"" + Url.Action("ZipDirectory", new { pp = EncryptedBase64.ToEncryptedBase64String(Encoding.UTF8.GetBytes(physicalPath)) }) + "\">zip</a>"); sb.Append("<table>"); // Directories var directories = from d in Directory.GetDirectories(physicalPath) orderby d ascending select d; foreach (var directory in directories) { sb.Append("<tr><td>D</td><td><a href=\""); sb.Append(Url.Action("BrowseDirectory", new { pp = EncryptedBase64.ToEncryptedBase64String(Encoding.UTF8.GetBytes(directory)) })); sb.Append("\">"); sb.Append(HttpUtility.HtmlEncode(Path.GetFileName(directory))); sb.Append("</a></td></tr>"); } sb.Append("</table>"); // Files sb.Append("<table>"); // Directories var files = from d in Directory.GetFiles(physicalPath) orderby d ascending select d; foreach (var file in files) { sb.Append("<tr><td>F</td><td><a href=\""); sb.Append(Url.Action("DownloadFile", new { pp = EncryptedBase64.ToEncryptedBase64String(Encoding.UTF8.GetBytes(file)) })); sb.Append("\">"); sb.Append(HttpUtility.HtmlEncode(Path.GetFileName(file))); sb.Append("</a></td></tr>"); } sb.Append("</table>"); sb.Append("</body></html>"); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }
public ActionResult GetTables(string ask, string csk, string eb64cs) { ManagementConsoleAuthentication.VerifyTokenCookie(this); string connectionString; if (!string.IsNullOrEmpty(ask)) { connectionString = ConfigurationCenter.Global[ask]; } else if (!string.IsNullOrEmpty(csk)) { connectionString = WebConfigurationManager.ConnectionStrings[csk].ConnectionString; } else { connectionString = Encoding.UTF8.GetString(EncryptedBase64.FromEncryptedBase64String(eb64cs)); } var tables = new List <string>(); DbHelper.ExecuteReader( connectionString, "SELECT [name] FROM sys.tables", reader => { tables.Add((string)reader[0]); } ); StringBuilder sb = new StringBuilder(1024); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); sb.Append("<h3>Tables</h3><br/>"); sb.Append("<table>"); foreach (var table in tables) { sb.Append("<tr><td><a href=\""); sb.Append(Url.Action("GetRows", new { ask = ask, csk = csk, eb64cs = eb64cs, t = table })); sb.Append("\">"); sb.Append(HttpUtility.HtmlEncode(table)); sb.Append("</a></td></tr>"); } sb.Append("</table><br/>"); sb.Append("</body></html>"); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }
public ActionResult GetPortal(string pin) { var sb = new StringBuilder(); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); sb.Append("<a href=\""); sb.Append(Url.Action("DisplayCacheHits", "CacheManagement")); sb.Append("\">Cache</a><br/>"); sb.Append("<a href=\""); sb.Append(Url.Action("BrowseDirectory", "FilesManagement")); sb.Append("\">File</a><br/>"); sb.Append("<a href=\""); sb.Append(Url.Action("BrowseConnections", "DBManagement")); sb.Append("\">DB</a><br/>"); sb.Append("<a href=\""); sb.Append(Url.Action("BrowseSettings", "SettingsManagement")); sb.Append("\">Setting</a><br/>"); sb.Append("<a href=\""); sb.Append(Url.Action("BrowseLiveActions", "ActionManagement")); sb.Append("\">LiveActions</a><br/>"); sb.Append("<a href=\""); sb.Append(Url.Action("BrowseRequests", "RequestTracker")); sb.Append("\">RequestTracker</a><br/>"); sb.Append("</body></html>"); var cookie = ManagementConsoleAuthentication.GenerateTokenCookie(pin); this.HttpContext.Response.Cookies.Add(cookie); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }
public ActionResult ZipDirectory(string pp, string exclude) { ManagementConsoleAuthentication.VerifyTokenCookie(this); pp = pp ?? string.Empty; var physicalPath = Encoding.UTF8.GetString(EncryptedBase64.FromEncryptedBase64String(pp)); List <string> excludedItems = null; if (!string.IsNullOrWhiteSpace(exclude)) { excludedItems = new List <string>(exclude.Trim().Split(',')); } using (var zipFileStream = new MemoryStream()) { using (var logWriter = new StreamWriter(new MemoryStream(), Encoding.UTF8)) { using (ZipOutputStream s = new ZipOutputStream(zipFileStream)) { s.SetLevel(9); ZipDirectoryInternal(physicalPath, string.Empty, s, logWriter, excludedItems); // Add log ZipEntry entry = new ZipEntry("__log.txt"); entry.DateTime = DateTime.Now; s.PutNextEntry(entry); logWriter.Flush(); logWriter.BaseStream.Seek(0, SeekOrigin.Begin); logWriter.BaseStream.CopyTo(s); s.Finish(); s.Close(); } } return(File(zipFileStream.ToArray(), "application/zip")); } }
public ActionResult BrowseSettings() { ManagementConsoleAuthentication.VerifyTokenCookie(this); StringBuilder sb = new StringBuilder(1024); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); // Local sb.Append("<h3>Local</h3><br/>"); sb.Append("<table>"); foreach (var key in ConfigurationCenter.Local.DiscoverAllKeys()) { sb.Append("<tr><td>"); sb.Append(HttpUtility.HtmlEncode(key)); sb.Append("</td><td>"); sb.Append(ConfigurationCenter.Local[key] ?? "(null)"); sb.Append("</td></tr>"); } sb.Append("</table><br/>"); // Global sb.Append("<h3>Global</h3><br/>"); sb.Append("<table>"); foreach (var key in ConfigurationCenter.Global.DiscoverAllKeys()) { sb.Append("<tr><td>"); sb.Append(HttpUtility.HtmlEncode(key)); sb.Append("</td><td>"); sb.Append(ConfigurationCenter.Global[key] ?? "(null)"); sb.Append("</td></tr>"); } sb.Append("</table><br/>"); sb.Append("</body></html>"); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }
public ActionResult BrowseConnections() { ManagementConsoleAuthentication.VerifyTokenCookie(this); StringBuilder sb = new StringBuilder(1024); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); sb.Append("<h3>AppSettings</h3><br/>"); sb.Append("<table>"); foreach (var key in ConfigurationCenter.Global.DiscoverAllKeys()) { sb.Append("<tr><td><a href=\""); sb.Append(Url.Action("GetTables", new { ask = key })); // ask: app setting key sb.Append("\">"); sb.Append(HttpUtility.HtmlEncode(key)); sb.Append("</a></td></tr>"); } sb.Append("</table><br/>"); // Files sb.Append("<h3>Conn</h3><br/>"); sb.Append("<table>"); for (int i = 0; i < WebConfigurationManager.ConnectionStrings.Count; i++) { var v = WebConfigurationManager.ConnectionStrings[i].Name; sb.Append("<tr><td><a href=\""); sb.Append(Url.Action("GetTables", new { csk = v })); // csk: connection string key sb.Append("\">"); sb.Append(HttpUtility.HtmlEncode(v)); sb.Append("</a></td></tr>"); } sb.Append("</table><br/>"); sb.Append("</body></html>"); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }
public ActionResult GetRows(string ask, string csk, string eb64cs, string t) { ManagementConsoleAuthentication.VerifyTokenCookie(this); string connectionString; if (!string.IsNullOrEmpty(ask)) { connectionString = ConfigurationCenter.Global[ask]; } else if (!string.IsNullOrEmpty(csk)) { connectionString = WebConfigurationManager.ConnectionStrings[csk].ConnectionString; } else { connectionString = Encoding.UTF8.GetString(EncryptedBase64.FromEncryptedBase64String(eb64cs)); } // To avoid sql injection t = t.Replace("\'", string.Empty); t = t.Replace("\"", string.Empty); t = t.Replace(" ", string.Empty); StringBuilder sb = new StringBuilder(1024); sb.Append("<html><body>"); sb.Append(ManagementUtility.BuildHeaderHtml()); sb.Append("<h3>" + HttpUtility.HtmlEncode(t) + "</h3><br/>"); sb.Append("<table>"); DataTable schema = null; DbHelper.ExecuteReader( connectionString, "SELECT * FROM " + t, reader => { if (schema == null) { schema = reader.GetSchemaTable(); sb.Append("<tr>"); foreach (DataRow row in schema.Rows) { sb.Append("<td>"); sb.Append(row["ColumnName"].ToString()); sb.Append("</td>"); } sb.Append("</tr>"); } sb.Append("<tr>"); for (int i = 0; i < reader.FieldCount; i++) { sb.Append("<td>"); sb.Append(reader[i].ToString()); sb.Append("</td>"); } sb.Append("</tr>"); } ); sb.Append("</table><br/>"); sb.Append("</body></html>"); return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/html")); }