public override void OnActionExecuted(ActionExecutedContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; if (!request.IsAjaxRequest() || request.HttpMethod == "POST") { string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gizp"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); HttpRequestBase request = filterContext.HttpContext.Request; if (request == null || request.IsAjaxRequest()) { return; } HttpResponseBase response = filterContext.HttpContext.Response; string acceptEncoding = request.Headers["Accept-Encoding"]; if (String.IsNullOrEmpty(acceptEncoding)) { return; } if (acceptEncoding.ToLower().Contains("gzip")) { response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "gzip"); } else if (acceptEncoding.ToLower().Contains("deflate")) { response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "deflate"); } }
public static void UpdateHeader(HttpResponseBase response, ResponseFrameOptionsType type, string domain) { switch (type) { case ResponseFrameOptionsType.DENY: { response.AppendHeader(FrameOptionsConstants.XFrameOptions, FrameOptionsConstants.DenyFrames); break; } case ResponseFrameOptionsType.SAMEORIGIN: { response.AppendHeader(FrameOptionsConstants.XFrameOptions, FrameOptionsConstants.SameOriginFrames); break; } case ResponseFrameOptionsType.ALLOWFROM when !string.IsNullOrWhiteSpace(domain): { response.AppendHeader(FrameOptionsConstants.XFrameOptions, $"{FrameOptionsConstants.AllowFrom} {domain}"); break; } default: { response.AppendHeader(FrameOptionsConstants.XFrameOptions, FrameOptionsConstants.DenyFrames); break; } } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext is null) { throw new ArgumentNullException(nameof(filterContext)); } HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers[AspNetConstants.AcceptEncoding]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader(AspNetConstants.ContentEncoding, "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader(AspNetConstants.ContentEncoding, "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } }
public override void OnResultExecuted(ResultExecutedContext filterContext) { if (filterContext.Exception == null && this.isEnableCompression) { HttpResponseBase response = filterContext.HttpContext.Response; if (!(response.Filter is GZipStream) && !(response.Filter is DeflateStream)) { string text = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (!string.IsNullOrEmpty(text)) { text = text.ToLower(); if (text.Contains("gzip") && response.Filter != null) { response.AppendHeader("Content-Encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (text.Contains("deflate") && response.Filter != null) { response.AppendHeader("Content-Encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } } } }
Stream EncodeStreamAndAppendResponseHeaders(Stream stream, string acceptEncoding) { if (acceptEncoding == null) { return(stream); } var preferredEncoding = ParsePreferredEncoding(acceptEncoding); if (preferredEncoding == null) { return(stream); } response.AppendHeader("Content-Encoding", preferredEncoding); response.AppendHeader("Vary", "Accept-Encoding"); if (preferredEncoding == "deflate") { return(new DeflateStream(stream, CompressionMode.Compress, true)); } if (preferredEncoding == "gzip") { return(new GZipStream(stream, CompressionMode.Compress, true)); } // This line should never be reached because we've filtered out unsupported encoding types. // But the compiler doesn't know this. :) throw new Exception("Unknown content encoding type \"" + preferredEncoding + "\"."); }
/// <summary> /// override OnActionExecuting /// </summary> /// <param name="filterContext">ActionExecutingContext</param> public override void OnActionExecuting(ActionExecutingContext filterContext) { if (Metadata.Get("Metadata/Settings.EnableGzipCompress").ParseToBool(false)) { HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } }
public static void CompressStream(HttpRequestBase request, HttpResponseBase response) { string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } string encoding = response.Headers["Content-encoding"]; if (!string.IsNullOrEmpty(encoding)) { return; } acceptEncoding = acceptEncoding.ToLowerInvariant(); if (acceptEncoding.Contains("gzip")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("deflate")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { bool allowCompression = false; bool.TryParse(ConfigurationManager.AppSettings["Compression"], out allowCompression); if (allowCompression) { HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } }
/// <summary> /// The on begin request. /// </summary> /// <param name="context"> /// The context. /// </param> public override void OnBeginRequest(HttpContextBase context) { if (context.Request.RawUrl.Contains(".aspx")) { HttpRequestBase request = context.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; HttpResponseBase response = context.Response; if (!string.IsNullOrEmpty(acceptEncoding)) { acceptEncoding = acceptEncoding.ToUpperInvariant(); if (acceptEncoding.Contains("GZIP")) { response.Filter = new CompressWhitespaceFilter(context.Response.Filter, CompressOptions.GZip); response.AppendHeader("Content-encoding", "gzip"); } else if (acceptEncoding.Contains("DEFLATE")) { response.Filter = new CompressWhitespaceFilter(context.Response.Filter, CompressOptions.Deflate); response.AppendHeader("Content-encoding", "deflate"); } } response.Cache.VaryByHeaders["Accept-Encoding"] = true; } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(encodingsAccepted)) { return; } // HttpResponseBase response = filterContext.HttpContext.Response; // if (encodingsAccepted.Contains("deflate")) { response.Headers.Remove("Content-Encoding"); response.AppendHeader("Content-Encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionLevel.Optimal); } else if (encodingsAccepted.Contains("gzip")) { response.Headers.Remove("Content-Encoding"); response.AppendHeader("Content-Encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionLevel.Optimal); } // response.AppendHeader("Vary", "Content-Encoding"); }
public static void AddCompression(HttpContextBase httpContext) { bool?isCompressionAdded = (bool?)httpContext.Items["compressionAdded"]; if (isCompressionAdded.GetValueOrDefault(false)) { return; } HttpRequestBase request = httpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = httpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } httpContext.Items["compressionAdded"] = true; }
public override void OnResultExecuted(ResultExecutedContext filterContext) { //如果出现错误,则不进行压缩,否则页面会出现乱码,而不是报错的黄页 if (filterContext.Exception != null) { return; } HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase; //判断IIS或者其他承载设备是是否启用了GZip或DeflateStream if (Response.Filter is GZipStream || Response.Filter is DeflateStream) { return; } //开始进入压缩环节 string AcceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (!string.IsNullOrEmpty(AcceptEncoding)) { if (AcceptEncoding.Contains("gzip")) { Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress); Response.Headers.Remove("Content-Encoding"); Response.AppendHeader("Content-Encoding", "gzip"); } else //if (AcceptEncoding.Contains("deflate")) { Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress); Response.Headers.Remove("Content-Encoding"); Response.AppendHeader("Content-Encoding", "deflate"); } } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; //получаем заголовок Accept-Encoding, который указывает //какие алгоритмы сжатия он поддерживает string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } }
/// <summary> /// 将文件写入响应流,根据请求标头和文件属性添加正确的标头 /// </summary> /// <param name="response"></param> protected virtual void TransmitFile(HttpResponseBase response) { var contentLength = ContentLength(); response.StatusCode = SendRange() ? (int)HttpStatusCode.PartialContent : (int)HttpStatusCode.OK; response.AppendHeader(HttpHeaders.ContentLength, contentLength.ToString(CultureInfo.InvariantCulture)); response.AppendHeader(HttpHeaders.AcceptRanges, "bytes"); response.AppendHeader(HttpHeaders.ContentRange, $"bytes {_byteRange.Start}-{_byteRange.End}/{_file.Length}"); response.AppendHeader(HttpHeaders.AccessControlExposeHeaders, HttpHeaders.ContentDisposition); if (!string.IsNullOrWhiteSpace(_downloadFileName)) { response.AddHeader("Content-Disposition", $"attachment;filename=\"{_downloadFileName}\""); } try { response.TransmitFile(FileName, _byteRange.Start, contentLength); } catch (Exception ex) { LogException?.Invoke(ex); } }
/// <summary> /// 检查请求中的标头,为响应添加适当的标头 /// </summary> /// <param name="response"></param> protected override void WriteFile(HttpResponseBase response) { response.AppendHeader(HttpHeaders.Etag, _etag); response.AppendHeader(HttpHeaders.LastModified, _lastModified); response.AppendHeader(HttpHeaders.Expires, DateTime.Now.ToString("R")); response.AppendHeader(HttpHeaders.AccessControlExposeHeaders, HttpHeaders.ContentDisposition); if (IsNotModified()) { response.StatusCode = (int)HttpStatusCode.NotModified; } else if (IsPreconditionFailed()) { response.StatusCode = (int)HttpStatusCode.PreconditionFailed; } else if (IsRangeNotSatisfiable()) { response.AppendHeader(HttpHeaders.ContentRange, "bytes */" + _file.Length); response.StatusCode = (int)HttpStatusCode.RequestedRangeNotSatisfiable; } else { TransmitFile(response); } }
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) { // If the browser session or authentication session has expired... if (HttpContext.Current.Session[SessionFilter.EncryptedLoggedinEmployeeId] == null || !HttpContext.Current.User.Identity.IsAuthenticated) { //ValidateSession(SessionFilter.OnActionExecuting); ValidateSession(); } HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } }
public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; response.ClearHeaders(); response.AppendHeader("Cache-Control", "private, no-cache, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0"); response.AppendHeader("Pragma", "no-cache"); response.AppendHeader("Expires", "-1"); HttpCachePolicyBase cache = response.Cache; cache.SetCacheability(HttpCacheability.NoCache); if (string.IsNullOrEmpty(this.Filename)) { this.Filename = "output.xls"; } response.ContentType = "application/vnd.ms-excel"; response.AddHeader("Content-Disposition", "attachment;filename=" + this.Filename); if (this.ContentEncoding == null) { this.ContentEncoding = System.Text.Encoding.GetEncoding("Shift_JIS"); //this.ContentEncoding = System.Text.Encoding.UTF8; } response.ContentEncoding = this.ContentEncoding; response.BinaryWrite(Data.GetBuffer()); }
public override void OnResultExecuted(ResultExecutedContext filterContext) { if (filterContext.Exception != null || !isEnableCompression) { return; } HttpResponseBase response = filterContext.HttpContext.Response; if (response.Filter is GZipStream || response.Filter is DeflateStream) { return; } string item = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (!string.IsNullOrEmpty(item)) { item = item.ToLower(); if (item.Contains("gzip") && response.Filter != null) { response.AppendHeader("Content-Encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); return; } if (item.Contains("deflate") && response.Filter != null) { response.AppendHeader("Content-Encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } }
public static void EncodeStreamAndAppendResponseHeaders(HttpResponseBase response, string acceptEncoding) { if (acceptEncoding == null) { return; } var preferredEncoding = ParsePreferredEncoding(acceptEncoding); if (preferredEncoding == null) { return; } response.AppendHeader("Content-Encoding", preferredEncoding); response.AppendHeader("Vary", "Accept-Encoding"); if (preferredEncoding == "deflate") { response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress, true); } if (preferredEncoding == "gzip") { response.Filter = new GZipStream(response.Filter, CompressionMode.Compress, true); } }
public override void ExecuteResult(ControllerContext context) { HttpResponseBase response = context.HttpContext.Response; HttpRequestBase request = context.HttpContext.Request; response.AddHeader("Content-Disposition", new ContentDisposition { FileName = FileName }.ToString()); response.AppendHeader("Vary", "Accept-Encoding"); response.Cache.SetCacheability(HttpCacheability.Public); response.Cache.SetMaxAge(CacheDuration); response.Cache.SetSlidingExpiration(true); if (!VersionChanged(request, ScriptHtmlHelper.Manager.LastModified)) { response.StatusCode = 304; response.SuppressContent = true; return; } bool canGZip = CanGZip(context.HttpContext.Request); byte[] bytes = canGZip ? (Compressed ?? (Compressed = Compress())) : Uncompressed; response.AppendHeader("Content-Length", bytes.Length.ToString()); if (canGZip) { response.AppendHeader("Content-Encoding", "gzip"); } response.Cache.SetLastModified(ScriptHtmlHelper.Manager.LastModified); response.ContentType = ContentType; response.OutputStream.Write(bytes, 0, bytes.Length); }
/// <summary> /// Sets up the current page or handler to use GZip through a Response.Filter /// IMPORTANT: /// You have to call this method before any output is generated! /// </summary> public static void GZipEncodePage(ActionExecutingContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } //if (request.Headers["Accept"] == "application/json") // return; acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } // Allow proxy servers to cache encoded and unencoded versions separately response.AppendHeader("Vary", "Content-Encoding"); }
public static void PrepareCompression(HttpRequestBase request, HttpResponseBase response) { var isCompressionEnabled = true; if (request.Url.ToString().Contains("disableCompress=1")) { isCompressionEnabled = false; } if (isCompressionEnabled) { var encodings = request.Headers.Get("Accept-Encoding"); if (encodings != null) { // Check the browser accepts deflate or gzip (deflate takes preference) encodings = encodings.ToLower(); if (encodings.Contains("deflate")) { response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "deflate"); response.AppendHeader("Vary", "Content-Encoding"); } else if (encodings.Contains("gzip")) { response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "gzip"); response.AppendHeader("Vary", "Content-Encoding"); } } } }
public override void OnResultExecuting(ResultExecutingContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding)) { return; } acceptEncoding = acceptEncoding.ToUpperInvariant(); HttpResponseBase response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; string[] supported = new string[] { "gzip", "deflate" }; IEnumerable <string> preferredOrder = new AcceptList(request.Headers["Accept-Encoding"], supported); string preferred = preferredOrder.FirstOrDefault(); HttpResponseBase response = filterContext.HttpContext.Response; switch (preferred) { case "gzip": response.AppendHeader("Content-Encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); break; case "deflate": response.AppendHeader("Content-Encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); break; case "identity": default: break; } }
/// <summary> /// 应用客户端缓存策略 /// </summary> public void ApplyClientCachePolicy(HttpResponseBase response) { string cacheControl; switch (_cacheability) { case HttpCacheability.NoCache: cacheControl = "no-cache"; break; case HttpCacheability.Public: cacheControl = "public"; break; default: case HttpCacheability.Private: cacheControl = "private"; break; } if (cacheControl != "no-cache") { if (_maxAge != null) { cacheControl += ",max-age=" + (int)_maxAge.Value.TotalSeconds; } if (_sMaxAge != null) { cacheControl += ",s-maxage=" + (int)_sMaxAge.Value.TotalSeconds; } } response.AppendHeader("Cache-Control", cacheControl); if (_expires != null) { response.AppendHeader("Expires", _expires.Value.ToString("R")); } if (_lastModified != null) { response.AppendHeader("Last-Modified", _lastModified.Value.ToString("R")); } if (_etag != null) { response.AppendHeader("ETag", _etag); } if (_varyHeaders != null && _varyHeaders.Any()) { response.AppendHeader("Vary", string.Join(",", _varyHeaders)); } }
public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; response.ClearHeaders(); response.AppendHeader("Cache-Control", "private, no-cache, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0"); response.AppendHeader("Pragma", "no-cache"); response.AppendHeader("Expires", "-1"); HttpCachePolicyBase cache = response.Cache; cache.SetCacheability(HttpCacheability.NoCache); if (string.IsNullOrEmpty(this.Filename)) { this.Filename = "data.csv"; } response.ContentType = "application/octet-stream"; response.AddHeader("Content-Disposition", "attachment;filename=" + this.Filename); if (this.ContentEncoding == null) { this.ContentEncoding = System.Text.Encoding.GetEncoding("Shift_JIS"); //this.ContentEncoding = System.Text.Encoding.UTF8; } response.ContentEncoding = this.ContentEncoding; if (this.Data != null) { //見出し行を出力。 OutputHeader(response); //各行のデータを出力。 foreach (object item in this.Data) { OutputLine(response, item); } } else { //見出し行を出力。 OutputHeaderFromDataTable(response); //各行のデータを出力。 foreach (DataRow dr in this.dataTable.Rows) { OutputLineFromDataTable(response, dr); } } }
public static void ToExcel(DataSet dsInput, string filename, HttpResponseBase response) { var excelXml = GetExcelXml(dsInput, filename); response.Clear(); response.AppendHeader("Content-Type", "application/vnd.ms-excel"); response.AppendHeader("Content-disposition", "attachment; filename=" + filename); response.Write(excelXml); response.Flush(); response.End(); }
public void Generate(string xml, HttpResponseBase resp) { var data = new MemoryStream(); resp.ContentType = ContentType; resp.HeaderEncoding = Encoding.UTF8; resp.AppendHeader("Content-Disposition", "attachment;filename=grid.xlsx"); resp.AppendHeader("Cache-Control", "max-age=0"); Generate(xml, data); data.WriteTo(resp.OutputStream); }
private void RenderHeaders(HttpResponseBase response) { foreach (var metric in _metrics) { if (metric.Type == MetricType.Duration) { response.AppendHeader("Server-Timing", $"{metric.Name};dur={metric.Value}"); } else { response.AppendHeader($"x-serpentine-{metric.Name}", $"{metric.Value}"); } } }