我开发了一个软件应用程序,并使用从Verisign(现为赛门铁克)获得的Authenticode证书对我的安装程序进行了数字签名。我使用Visual Studio附带的signtool.exe实用程序签署了安装程序(.exe)。当我运行安装程序时,它现在说我的公司名称是发布者,而不是“未知”,这是我的目标....成功!
然后我在我的网站上发布了安装程序文件,以便分发给我的客户。该文件由asp:按钮提供,该按钮在单击时执行以下代码:
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=CP11Full_x86.exe");
Response.TransmitFile(Server.MapPath("~/Software/ContainmentPlanner/Files/CP11Full_x86.exe"));
HttpContext.Current.ApplicationInstance.CompleteRequest();
当我从我的网站下载安装程序文件并运行它时,发布者字段显示“未知”!!! 然后我使用FTP客户端将文件直接从我的Web服务器复制到我的计算机,并且下载的文件是HAD THE SIGNATURE(即没有显示发布者:未知),所以显然Web服务器上的文件很好。它必须是通过网站下载文件的过程,剥离或使数字签名无效。我尝试了Firefox和IE,并得到了相同的结果。
我做错了什么?在此先感谢您的帮助。
答案 0 :(得分:2)
可能是某些HTML被写入响应流,破坏了下载。试试这个: 在致电TransmitFile之前,请添加
Response.Clear();
调用TransmitFile后,添加
Response.SuppressContent = "true";