IRONSOFTWAREHOME

如何在 C# 中设置 PDF 密码和权限

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronPDF 可让您在 C# 中使用密码和权限保护 PDF 文档,既支持用于打开文件的用户密码,也支持通过 128 位加密控制编辑、打印和复制权限的所有者密码。 这一全面的安全功能允许开发人员实施符合企业合规性要求的文档保护策略。

密码保护涉及加密文档以限制未经授权的访问。 它通常包括两种类型的密码:用户密码(或打开密码),用于打开文档,以及所有者密码(或权限密码),用于控制编辑、打印和其他操作的权限。 在您的 .NET 应用程序中实施 PDF 安全性时,了解这些不同的密码类型至关重要。

IronPDF 支持您对现有和新 PDF 文件的密码和权限所需的一切功能。 可以应用细粒度的元数据和安全设置,包括将 PDF 文档限制为不可打印、只读和加密。 支持128位加密、解密和密码保护。 这些功能与 IronPDF 的其他功能(如 数字签名PDF 压缩)无缝集成。

快速入门:使用IronPDF设置 PDF 密码和权限

快速入门使用IronPDF保护您的文档。 本示例展示了如何设置用户和所有者密码,同时配置权限以防止未经授权的打印。 通过遵循这些简单步骤,您可以使用C# .NET有效地保护您的PDF文件,确保您的敏感数据保持机密。 IronPDF 使您可以直接在应用程序中实施强大的安全措施,无论您是在处理 HTML 到 PDF 的转换还是现有文档。

PdfDocument.FromFile


如何为 PDF 设置密码?

用户密码和所有者密码有什么区别?

User Password(也称为打开密码)是打开和查看PDF文档所需的。 如果没有这个密码,PDF 文件根本无法访问。 相比之下,Owner Password(或权限密码)授予对文档安全设置的完全控制。 当您使用所有者密码打开 PDF 时,您可以修改权限、删除密码并不受限制地访问所有文档功能。 这种双密码系统可为不同的使用情况提供灵活的安全选项,从简单的文档保护到复杂的权限管理方案。

为什么要同时使用两种密码类型?

使用这两种密码类型可以创建一个全面的安全策略。 用户密码确保只有经过授权的人才能查看文档,而所有者密码则提供管理控制。 这在商业环境中尤其有用,因为在这种环境中,您可能希望员工查看文档(使用用户密码),但只有管理人员可以修改权限或删除保护(使用所有者密码)。 此外,这种方法还符合许多行业的合规要求,这些行业规定敏感文件有不同的访问级别。

当用户输入每个密码时会发生什么?

当用户输入user password时,他们可以根据您设置的权限访问文档。 他们可以查看内容,但可能被限制打印、复制文本或进行修改。 当输入owner password时,所有限制将被解除,用户对文档具有完全的管理权限,包括更改密码和修改权限设置的能力。

我们有一个要使用IronPDF保护的示例PDF文件。 让我们执行以下代码为PDF添加密码。 在此示例中,我们将使用密码password123。 无论您是从 HTML 创建 PDF 还是处理现有文档,这种方法都能实现无缝对接。

using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Secret Information:</h1> Hello World");

// Password to edit the pdf
pdf.SecuritySettings.OwnerPassword = "123password";

// Password to open the pdf
pdf.SecuritySettings.UserPassword = "password123";

pdf.SaveAs("protected.pdf");

结果是以下PDF,您可以通过输入密码password123查看。

如何打开有密码的 PDF?

FromFile 接受哪些参数?

FromFile方法接受两个主要参数:文件路径和一个可选的密码字符串。 在处理受密码保护的 PDF 文件时,您必须提供正确的密码作为第二个参数。 该方法可自动检测所提供的密码是用户密码还是所有者密码,并授予相应的访问级别。 这种无缝集成使您可以在 C# 应用程序中轻松处理受保护的文档。

如何处理不正确的密码尝试?

当提供的密码不正确时,IronPDF 会抛出一个特定异常,您可以捕获并适当处理该异常。 最佳实践包括实施 try-catch 块,以优雅地管理密码失败:

try 
{
    var pdf = PdfDocument.FromFile("protected.pdf", userPassword);
    // Process the PDF
}
catch (IronPdf.Exceptions.IronPdfPasswordException ex)
{
    // Handle incorrect password
    Console.WriteLine("Invalid password provided");
}

打开后能否移除密码保护?

是的,一旦您使用所有者密码打开PDF,您可以使用RemovePasswordsAndEncryption()方法移除所有密码保护。 当您需要分发先前受保护的文档或将其集成到不支持密码保护 PDF 的系统中时,这将非常有用。

本节描述如何打开带有密码的PDF。 PdfDocument.FromFile方法有第二个可选参数即密码。 提供正确的密码作为此参数以打开PDF。 该功能可与 IronPDF 的其他功能(如 合并 PDF 提取文本)很好地集成。

using IronPdf;

var pdf = PdfDocument.FromFile("protected.pdf", "password123");

//... perform PDF-tasks

pdf.SaveAs("protected_2.pdf"); // Saved as another file

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic

微软MVP

查看案例研究

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle

首席技术官,OPYN

查看案例研究

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何配置高级安全和权限设置?

我可以控制哪些权限?

IronPDF通过SecuritySettings类提供细粒度的PDF权限控制。 您可以管理各种权限,包括

  • AllowUserAnnotations:控制用户是否可以添加注释和批注
  • AllowUserCopyPasteContent:限制文本和图像复制
  • AllowUserFormData:管理表单填写能力
  • AllowUserPrinting:设置打印权限,包括高质量或低分辨率打印
  • AllowUserEditing:控制文档修改权限

这些权限与密码保护相结合,可创建符合您特定要求的全面安全策略。

权限如何与密码交互?

权限设置根据密码配置的不同而表现不同。 在未设置密码的情况下,权限会被强制执行,但有可能被 PDF 编辑软件绕过。 只需输入用户密码,即可根据定义的权限进行访问。 然而,当同时设置两个密码时,用户密码提供受限制的访问权限,而所有者密码则覆盖所有权限,授予完全控制权。 这种分级系统可确保对不同用户角色进行适当的访问控制。

我可以设置哪些元数据字段?

ModifiedDate。 其他元数据属性包括Producer。 这些领域对于文档管理系统和合规要求至关重要。 您还可以设置自定义元数据字段,这对内部跟踪和分类特别有用。 在我们的详细指南中了解有关 metadata management 的更多信息。

何时应使用 MakePdfDocumentReadOnly?

当您需要创建最终的不可编辑版本的文档时,使用带某些访问控制的MakePdfDocumentReadOnly方法是理想的。 这种方法将密码保护和限制权限结合在一次调用中,非常适合用于存档、法律文件或最终报告,这些文件应保持不变。 在需要确保文档完整性的文档工作流程中尤其有用。

您还可以禁用用户注释、用户打印等功能,如下所示:

using IronPdf;

// Open an Encrypted File, alternatively create a new PDF from HTML
var pdf = PdfDocument.FromFile("protected.pdf", "password123");

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Save the secure PDF
pdf.SaveAs("secured.pdf");

权限设置与文档密码相关,并按以下方式运行。 例如,将**AllowUserCopyPasteContent**属性设置为false旨在防止内容的复制/粘贴:

  • 未设置密码:没有密码的情况下,内容的复制粘贴仍然被阻止。
  • 设置用户密码:设置用户密码时,输入正确的密码将允许复制粘贴内容。
  • 设置所有者密码:设置所有者密码时,只输入用户密码将无法解锁复制粘贴功能。 然而,输入正确的所有者密码将允许复制粘贴内容。
文件权限对话框显示已禁用的安全功能,仅启用了打印功能

一个密切相关的文章讨论了预定义和自定义元数据。 通过遵循此链接了解更多信息:"如何设置和编辑PDF元数据。"

准备好看看您还能做些什么吗? 查看我们的教程页面:签名和保护PDFs

对于需要高级安全功能的企业应用程序,可考虑探索PDF/A 合规性以实现长期文档保存,或实施带有 HSM 的数字签名以增强身份验证。 IronPDF 的安全功能可与 Azure 部署方案无缝集成,并支持各种 渲染选项,以满足您的特定要求。

常见问题解答

如何在 C# 中为 PDF 文件添加密码保护?

通过设置 SecuritySettings 属性,您可以使用 IronPDF 为 PDF 添加密码保护。只需加载 PDF 文档,然后设置 UserPassword 属性以要求打开文件时输入密码,和/或设置 OwnerPassword 属性以控制编辑权限。IronPDF 支持 128 位加密,可对文档进行安全保护。

PDF 的用户密码和所有者密码有什么区别?

在 IronPDF 中,打开和查看 PDF 文档需要用户密码(或打开密码),而所有者密码(或权限密码)则控制用户可以在文档上执行哪些操作,如编辑、打印或复制内容。您可以使用 SecuritySettings.UserPassword 和 SecuritySettings.OwnerPassword 属性独立设置这两个密码。

能否阻止用户打印或复制 PDF 中的内容?

是的,IronPDF 允许您对 PDF 文档设置细粒度权限。您可以使用 SecuritySettings.Permissions 属性来限制打印、复制或编辑等操作。例如,设置 Permissions.NoPrinting 将阻止用户打印文档,即使他们拥有用户密码。

PDF 安全功能支持什么级别的加密?

IronPDF 支持对 PDF 文档进行 128 位加密,为您的敏感文件提供企业级安全保护。当您使用 SecuritySettings 属性为 PDF 文档设置密码或权限时,该加密级别会自动应用。

如何从现有 PDF 中移除密码保护?

要使用 IronPDF 从 PDF 中移除密码保护,首先需要通过向 FromFile 方法提供密码来打开受保护的文档。打开后,您可以通过将 UserPassword 和 OwnerPassword 属性重置为空字符串来清除安全设置,然后保存文档,使其不受保护。

在将 HTML 转换为 PDF 时,能否添加安全设置?

是的,IronPDF 允许您在将 HTML 转换为 PDF 后立即应用安全设置。从 HTML 内容创建 PDF 后,您可以访问 SecuritySettings 属性,在保存最终文档前设置密码和权限,确保转换后的文件从一开始就受到保护。

Can I add security settings when converting HTML to PDF?

Yes, IronPDF allows you to apply security settings immediately after converting HTML to PDF. After creating a PDF from HTML content, you can access the SecuritySettings properties to set passwords and permissions before saving the final document, ensuring your converted files are protected from the start.

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 21,039,986版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999