Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net网页的pdf呈现结果为静态标题_C#_Asp.net_Pdf_Pdf Generation - Fatal编程技术网

C# asp.net网页的pdf呈现结果为静态标题

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(); 这完

在使用以下代码将pdf(存储为字节数组)呈现到asp.net网页时出现了一个小问题:

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。