如何使用密碼和許可權保護PDF檔案的C#教程 | IronPDF教程

如何在C#中設置PDF密碼和權限

This article was translated from English: Does it need improvement?
Translated
View the article in English

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被輸入時,所有限制都會被解除,使用者獲得對文件的完全管理特權,包括能夠更改密碼和修改權限設置。

我們有一個範例PDF文件,我們想使用IronPDF來保護它。 讓我們執行以下程式碼來新增PDF密碼。 在這個範例中,我們將使用密碼password123。 不論您是在從HTML建立PDF還是處理現有文件,本方法都能無縫運行。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-permissions-passwords-add-password.cs
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");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = 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")
$vbLabelText   $csharpLabel

結果是以下PDF,您可以通過輸入密碼password123來查看。

Icon Quote related to 當使用者輸入每個密碼會發生什麼?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 當使用者輸入每個密碼會發生什麼?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 當使用者輸入每個密碼會發生什麼?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 當使用者輸入每個密碼會發生什麼?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 當使用者輸入每個密碼會發生什麼?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 當使用者輸入每個密碼會發生什麼?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何打開設有密碼的PDF?

FromFile接受哪些參數?

FromFile方法接受兩個主要參數:文件路徑和一個可選的密碼字串。 當處理受密碼保護的PDF文件時,您必須提供正確的密碼作為第二個參數。 方法會自動檢測提供的密碼是使用者還是擁有者密碼並授予適當的存取級別。 這種無縫整合使您在C#應用程式中輕鬆處理受保護的文件。

如何處理錯誤的密碼嘗試?

當提供錯誤的密碼時,IronPDF會拋出一個特定的異常,您可以捕獲並適當處理。 最佳做法是實施try-catch區塊以優雅地管理密碼錯誤:

:path=/static-assets/pdf/content-code-examples/how-to/pdf-permissions-passwords-2.cs
try 
{
    var pdf = PdfDocument.FromFile("protected.pdf", userPassword);
    // Process the PDF
}
catch (IronPdf.Exceptions.IronPdfPasswordException ex)
{
    // Handle incorrect password
    Console.WriteLine("Invalid password provided");
}
Imports IronPdf.Exceptions

Try
    Dim pdf = PdfDocument.FromFile("protected.pdf", userPassword)
    ' Process the PDF
Catch ex As IronPdfPasswordException
    ' Handle incorrect password
    Console.WriteLine("Invalid password provided")
End Try
$vbLabelText   $csharpLabel

打開後我可以移除密碼保護嗎?

是的,當您使用擁有者密碼打開PDF後,您可以使用RemovePasswordsAndEncryption()方法移除所有密碼保護。 這在您需要分發先前受保護的文件或將其整合進不支持受密碼保護PDF的系統中時特別有用。

本節描述如何打開設有密碼的PDF。 PdfDocument.FromFile方法有一個第二個可選參數即是密碼。 提供正確的密碼以這個參數來打開PDF。 此功能與其他IronPDF特性如合併PDF提取文字和圖片能良好整合。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-permissions-passwords-open-password.cs
using IronPdf;

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

//... perform PDF-tasks

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

Private pdf = PdfDocument.FromFile("protected.pdf", "password123")

'... perform PDF-tasks

pdf.SaveAs("protected_2.pdf") ' Saved as another file
$vbLabelText   $csharpLabel

我如何配置高級安全和權限設置?

我可以控制哪些權限?

IronPDF通過其SecuritySettings類提供對PDF權限的細粒度控制。 您可以管理各種權限,包括:

  • AllowUserAnnotations:控制使用者能否新增評論和註釋
  • AllowUserCopyPasteContent:限制文字和圖片複製
  • AllowUserFormData:管理表單填寫能力
  • AllowUserPrinting:設置列印權限,選項有高質量或低解析度列印
  • AllowUserEditing:控制文件修改權限

這些權限結合密碼保護建立符合您特定要求的全面安全政策。

權限如何與密碼互動?

權限設置根據密碼配置的不同而表現不同。 未設置密碼時,權限會被強制執行,但可能會被PDF編輯軟體繞過。 僅設置使用者密碼時,輸入此密碼能根據定義的權限授予存取。 然而,當兩者都設置時,使用者密碼提供有限存取,而擁有者密碼則覆蓋所有權限,授予全面控制。 這種分層系統確保對不同使用者角色的正確存取控制。

我可以設置哪些元資料字段?

ModifiedDate。 附加的元資料屬性包括Producer。 這些字段對文件管理系統和合規要求至關重要。 您也可以設置自定義元資料字段,這對內部跟踪和分類特別有用。 在我們的詳細指南中學習更多關於元資料管理的內容。

何時應使用MakePdfDocumentReadOnly?

MakePdfDocumentReadOnly方法在您需要建立一個最終的、不可編輯的文件版本時非常理想,同時保持某一級別的存取控制。 此方法結合密碼保護和限制的權限在一次調用中,是出於存檔目的、法律文件或應保持不變的最終報告的完美選擇。 在文件工作流程中特別有用,您需要確保文件完整性。

您還可以禁用使用者注釋、使用者列印及更多,如下所示:

:path=/static-assets/pdf/content-code-examples/how-to/pdf-permissions-passwords-advanced.cs
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");
Imports IronPdf

' Open an Encrypted File, alternatively create a new PDF from HTML
Private 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")
$vbLabelText   $csharpLabel

權限設置與文件密碼相關,行為如下。 例如,將AllowUserCopyPasteContent屬性設置為false是為了防止內容的複製/粘貼:

  • 未設置密碼:無密碼,內容的複製/粘貼仍然被阻止。
  • 設置使用者密碼:當設置使用者密碼時,輸入正確的密碼將允許內容的複製/粘貼。
  • 設置擁有者密碼:當設置擁有者密碼時,僅輸入使用者密碼不會解鎖複製/粘貼功能。 然而,輸入正確的擁有者密碼將允許內容的複製/粘貼。
文件權限對話框顯示已禁用的安全功能,僅啟用列印

一篇密切相關的文章討論了預定義和自定義元資料。 通過點擊此連結了解更多:"如何設置和編輯PDF元資料"。

準備好看看您還能做什麼嗎? 查看我們的教程頁面:簽署和保護PDF

對於需要高級安全功能的企業應用,考慮探索PDF/A合規以便長期文件保存,或實施使用HSM的數位簽名以增強認證。 IronPDF的安全功能與Azure 部署場景無縫整合,支持多種渲染選項以滿足您的具體要求。

常見問題

如何在C#中為PDF文件新增密碼保護?

您可以通過在IronPDF中設置SecuritySettings屬性來為PDF新增密碼保護。只需載入您的PDF文件,然後設置UserPassword屬性來要求開啟文件時輸入密碼,還可以設置OwnerPassword屬性來控制編輯權限。IronPDF支持128位加密來保護文件。

PDF的使用者密碼和擁有者密碼有什麼區別?

在IronPDF中,使用者密碼(或開啟密碼)是開啟和查看PDF文件所需的,而擁有者密碼(或許可權密碼)則控制使用者可以對文件進行的操作,例如編輯、列印或複製內容。您可以獨立設設置SecuritySettings.UserPassword和SecuritySettings.OwnerPassword屬性。

我可以阻止使用者列印或複製我的PDF中的內容嗎?

是的,IronPDF允許您在您的PDF文件設置細緻的許可權。您可以使用SecuritySettings.Permissions屬性來限制例如列印、複製或編輯的操作。舉例來說,設置 Permissions.NoPrinting將會阻止使用者列印文件,即使他們有使用者密碼。

PDF安全功能支持什麼樣的加密等級?

IronPDF支持128位加密,用於PDF文件,為您的敏感文件提供企業級安全性。當您使用SecuritySettings屬性設設置密碼或許可權時,將自動應用此加密等級。

如何從現有PDF中移除密碼保護?

要使用IronPDF從PDF中移除密碼保護,首先需要提供密碼來打開受保護的文件,使用FromFile方法。在打開後,您可以通過將UserPassword和OwnerPassword屬性重設為空字串來清除安全設置,然後保存文件而不帶保護。

我可以在將HTML轉換為PDF時新增安全設置嗎?

是的,IronPDF允許您在將HTML轉換為PDF後立即應用安全設置。在從HTML內容建立PDF後,您可以存取SecuritySettings屬性來設設置密碼和許可權,然後再保存最終文件,確保您的轉換文件從一開始就受到保護。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 19,936,792 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。