C# asp.net网页的pdf呈现结果为静态标题
在使用以下代码将pdf(存储为字节数组)呈现到asp.net网页时出现了一个小问题:C# asp.net网页的pdf呈现结果为静态标题,c#,asp.net,pdf,pdf-generation,C#,Asp.net,Pdf,Pdf Generation,在使用以下代码将pdf(存储为字节数组)呈现到asp.net网页时出现了一个小问题: Response.ClearContent(); Response.AppendHeader("content-length", document.Length.ToString()); Response.ContentType = "application/pdf"; Response.BinaryWrite(document); Response.Flush(); Response.Close(); 这完
Response.ClearContent();
Response.AppendHeader("content-length", document.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(document);
Response.Flush();
Response.Close();
这完全没有问题,但是为了呈现这个pdf(即返回字节数组),我们通过在QueryString中传递一些参数来调用web服务。这就是问题所在。呈现PDF后,它将标题显示为页面的完整url+查询字符串。显然,出于安全原因,我们不希望用户获得这些信息
有人知道如何在pdf呈现后设置页面标题吗?我已经试着让头在服务器端运行,但是没有任何效果。有趣的是,如果pdf渲染失败,或者一个数据方法事先失败,它会正确地更改标题。它几乎就像一旦点击pdf呈现,就会将标题更改回url/querystring
除此之外,我还检查了web服务传回的PDF的标题,存储在PDF属性中的标题与页面标题栏上呈现的标题完全不同
任何帮助都将不胜感激,干杯,
亚当您的头巾正在通过以下方式清除:
Response.ClearContent();
因此,即使您在…
中设置它,也永远不会将其发送到客户端
给定内容类型为application/pdf
,浏览器不知道如何呈现标题,因此它呈现URL
模糊性不是一种安全性,如果你依赖不知道Url的用户来阻止他们再次下载文件,你需要重新考虑。使用网络检查工具,他们将很容易看到他们正在请求哪些资源,即使您确实混淆了Url。并且在发送PDF之前清除内容是正确的:您不能在同一响应中混合使用PDF内容和HTML。