c# - 如何在线显示 PDF 而不担心未经许可共享?

标签 c# asp.net html pdf

我工作的公司销售医疗统计报告。目前,这些报告是通过我们的网站购买的,然后医疗保健提供者会收到 PDF 报告的链接。此链接指向一个 Web 服务,该服务验证购买并将 PDF 转储到响应流中。我们的 Web 应用程序是用 ASP.NET C# 编写的。

在下载之前,此过程非常安全,但没有什么可以阻止提供商与其他人共享这些报告。由于我们的报告主要是在 PC 上查看的,因此我们正在寻找仅在 Web 上查看这些 PDF 的选项,这将阻止客户下载报告。他们将登录自己的帐户并在线查看报告。

执行此操作的最佳方法是什么?我们可以使用哪种查看器来使最终用户能够看到 PDF 但无法下载它?我想到了 Flash,但我们希望这些报告可以在 iPad 上查看,因为许多医疗保健提供商正在迅速采用 iPad。

更新:

在收到你们的一些很棒的反馈后,我决定这不是一个容易的冒险。我的同事一直在阅读您的回复并进行讨论。我想我们都同意,我们需要让分享这些报告变得更加痛苦,因为我们几乎不可能让它变得不可能。使用他们用来登录我们网站的密码来保护他们似乎是一个不错的选择。

他们共享 PDF 而不是共享他们的帐户信息(让他们的“ friend ”可以登录并下载他们想要的所有报告)是有原因的。因此,也许共享一个使用与登录我们服务相同的密码锁定的 PDF 就足以阻止他们。

结合水印来识别客户(当客户确实返回给我们时)似乎是我们唯一可用的真正选择。

谢谢大家。

最佳答案

根据定义,如果用户正在查看 PDF,他们就已经下载了它。如果你将其转换为 html/css,那么他们就会下载该文件并保存/打印 html(并且使用 pdf 打印驱动程序,在任何情况下都可以直接打印到全新的 PDF,绕过整个“安全”系统)。

如果您想阻止共享 PDF,请使用密码保护它们。 PDF 支持主密码(需要进行更改)和用户密码(用于打开它)。将用户 ID 编码到 pdf 中(水印“由用户 XYZ 下载”在某处)并输入主密码。然后你就能够准确地找出是谁泄露了 PDF,如果它泄露了 - 上面会有一个漂亮的大水印,上面写着“他们做到了!”为你。

PDF 确实有阻止打印、屏幕阅读等的选项...但这些只是对阅读器程序的提示。 Adobe Reader 尊重这些限制(当然),但地球上的任何其他读者都可以选择忽略这些限制。

关于c# - 如何在线显示 PDF 而不担心未经许可共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420007/

相关文章:

c# - Dropzone,如何提交包含数据和多张图片的表单?

asp.net - 有多少公共(public)高流量网站是用 ASP.NET 构建的?

c# - ASP.NET 无法缓存空值

javascript - Google Analytics 会干扰 Android 浏览器中的 history.back() 吗?

html - 当我将鼠标悬停在按钮上时,为什么这个阴影不会消失?

c# - 现有元素的 HashSet 性能添加与包含

c# - 命令模式 : How to pass parameters to a command?

c# - OData 客户端代码生成器,创建和更新包含实体

asp.net - 强制注销所有在线用户中的特定用户

php - 表单文本区域不超过一行,只是不断滚动