C#でパスワードと権限を使用してPDFファイルを保護する方法 | IronPDFチュートリアル

PDFのパスワードとアクセス許可をC#で設定する方法

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

IronPDFはC#でPDFドキュメントをパスワードと権限で保護し、ファイルを開くためのユーザーパスワードと、編集、印刷、コピーの権限を128ビット暗号化でコントロールするオーナーパスワードの両方をサポートします。 この包括的なセキュリティ機能により、開発者は企業のコンプライアンス要件を満たす文書保護戦略を実施できます。

パスワード保護には、文書を暗号化して不正アクセスを制限することが含まれます。 通常、ユーザーパスワード(またはオープンパスワード)とオーナーパスワード(またはアクセス許可のパスワード)の2種類のパスワードが含まれます。ユーザーパスワードは文書を開く際に必要で、オーナーパスワードは編集、印刷、その他の操作の権限を制御します。 これらの異なるパスワードタイプを理解することは、.NET アプリケーションにPDFセキュリティを実装する際に非常に重要です。

IronPDFは既存のPDFファイルや新しいPDFファイルのパスワードとパーミッションに必要なすべてをサポートしています。 PDFドキュメントを印刷不可、読み取り専用、暗号化に制限する機能など、詳細なメタデータとセキュリティ設定を適用できます。 128ビットの暗号化、復号化、およびパスワード保護をすべてサポートしています。 これらの機能はデジタル署名PDF圧縮のようなIronPDFの他の機能とシームレスに統合されています。

クイックスタート: IronPDFでPDFのパスワードと権限を設定する

IronPDFを使ってドキュメントを迅速に保護しましょう。 この例では、ユーザーパスワードとオーナーパスワードの両方を設定し、不正な印刷を防止するためのアクセス許可を設定する方法を示します。 これらの簡単な手順に従って、C# .NETを使用してPDFファイルを効果的に保護し、機密データを安全に保つことができます。 IronPDFは、HTMLからPDFへの変換であろうと、既存の文書であろうと、アプリケーションに強固なセキュリティ対策を実装することを容易にします。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    var pdf = IronPdf.PdfDocument.FromFile("document.pdf");
    pdf.SecuritySettings.OwnerPassword = "owner123";
    pdf.SecuritySettings.UserPassword = "user123";
    pdf.SecuritySettings.Permissions = IronPdf.Security.Permissions.NoPrinting;
    pdf.SaveAs("secured_document.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


PDFにパスワードを設定するには?

ユーザーパスワードとオーナーパスワードの違いは何ですか?

ユーザーパスワード(オープンパスワードとしても知られています)は、PDFドキュメントを開いて表示するために必要です。 このパスワードがないと、PDFにまったくアクセスできません。 対照的に、所有者パスワード(または許可パスワード)は、文書のセキュリティ設定の完全な制御を許可します。 オーナパスワードでPDFを開くと、パーミッションを変更したり、パスワードを削除したり、すべての文書機能に無制限にアクセスすることができます。 このデュアルパスワードシステムは、単純な文書保護から複雑な権限管理シナリオまで、さまざまな使用ケースに対応する柔軟なセキュリティオプションを提供します。

なぜ両方のパスワードタイプを使用する必要があるのですか?

両方のパスワードタイプを使用することで、包括的なセキュリティ戦略を構築します。 ユーザーパスワードは、許可された個人のみがドキュメントを閲覧できるようにし、オーナーパスワードは、管理制御を提供します。 これは、従業員には(ユーザーパスワードを使用して)ドキュメントを閲覧させ、管理者だけが(オーナーパスワードを使用して)権限を変更したり、保護を解除したりできるようにするビジネス環境で特に役立ちます。 さらに、このアプローチは、機密文書に対するさまざまなアクセスレベルを義務付けている多くの業界のコンプライアンス要件にも合致しています。

ユーザーが各パスワードを入力すると何が起こりますか?

ユーザーがユーザーパスワードを入力すると、設定したパーミッションに基づいてドキュメントへの読み取りアクセスが可能になります。 コンテンツの閲覧は可能ですが、印刷、テキストのコピー、改変は制限される場合があります。 所有者パスワードが入力されると、すべての制限が解除され、ユーザーは、パスワードの変更や権限設定の変更を含む、文書に対する完全な管理者権限を得ます。

例の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");
$vbLabelText   $csharpLabel

結果は以下のPDFです。password123を入力すると見ることができます。

パスワード付きの PDF を開くにはどうすればよいですか?

FromFileはどのようなパラメータを受け付けますか?

PdfDocument.FromFileメソッドは、ファイルパスとオプションのパスワード文字列という 2 つの主要なパラメータを受け入れます。 パスワードで保護されたPDFを扱う場合は、2番目のパラメータとして正しいパスワードを指定する必要があります。 このメソッドは、提供されたパスワードがユーザーパスワードかオーナーパスワードかを自動的に検出し、適切なアクセスレベルを付与します。 このシームレスな統合により、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");
}
try 
{
    var pdf = PdfDocument.FromFile("protected.pdf", userPassword);
    // Process the PDF
}
catch (IronPdf.Exceptions.IronPdfPasswordException ex)
{
    // Handle incorrect password
    Console.WriteLine("Invalid password provided");
}
$vbLabelText   $csharpLabel

開封後にパスワード保護を解除できますか?

はい、いったん所有者パスワードでPDFを開いたら、RemovePasswordsAndEncryption()メソッドを使ってすべてのパスワード保護を解除することができます。 これは、以前に保護された文書を配布したり、パスワードで保護されたPDFをサポートしていないシステムに統合したりする必要がある場合に役立ちます。

このセクションでは、パスワードが設定されたPDFを開く方法を説明します。 PdfDocument.FromFileメソッドには2番目のオプションパラメータがあり、それがパスワードです。 正しいパスワードをこのパラメータに提供することで、PDFを開けます。 この機能はPDFのマージテキストの抽出のような他のIronPDF機能とうまく統合します。

: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
$vbLabelText   $csharpLabel

高度なセキュリティと権限設定はどのように設定できますか?

どの権限を制御できますか?

IronPdfはSecuritySettingsクラスを通してPDFのパーミッションを細かく制御します。 以下のようなさまざまな権限を管理できます:

  • AllowUserAnnotations:ユーザーがコメントや注釈を追加できるかどうかを制御します。
  • AllowUserCopyPasteContent:テキストと画像のコピーを制限する
  • AllowUserFormData:フォーム入力機能を管理する
  • AllowUserPrinting:高画質印刷または低解像度印刷のオプションで印刷許可を設定します。
  • AllowUserEditing:ドキュメントの変更権限を制御します。

これらのアクセス許可は、パスワード保護と連動して、特定の要件に一致する包括的なセキュリティポリシーを作成します。

パーミッションはパスワードとどのように相互作用しますか?

パーミッションの設定は、パスワードの設定によって動作が異なります。 パスワードが設定されていない場合、パーミッションは強制されますが、PDF編集ソフトウェアによってバイパスされる可能性があります。 ユーザーパスワードを入力するだけで、定義された権限に従ってアクセスできるようになります。 しかし、両方のパスワードが設定されている場合、ユーザーパスワードは制限されたアクセスを提供し、オーナーパスワードはすべての権限を上書きし、完全な制御を許可します。 この階層システムは、さまざまなユーザーの役割に対する適切なアクセス制御を保証します。

どのようなメタデータ フィールドを設定できますか?

PdfDocumentオブジェクトには、AuthorModifiedDateなどのメタデータフィールドもあります。 追加のメタデータプロパティには、TitleSubjectKeywordsCreatorProducerが含まれます。 これらの分野は、文書管理システムやコンプライアンス要件に不可欠です。 カスタムのメタデータフィールドも設定できるので、社内の追跡や分類に特に役立ちます。 メタデータ管理については、詳細ガイドをご覧ください。

どのような場合に MakePdfDocumentReadOnly を使用すべきですか?

MakePdfDocumentReadOnlyメソッドは、ある程度のアクセス制御を維持しながら、最終的な編集不可能なバージョンのドキュメントを作成する必要がある場合に最適です。 この方法は、パスワード保護と制限付きアクセス許可を1回の呼び出しで組み合わせているため、アーカイブ目的、法的文書、または変更せずに残しておくべき最終報告書に最適です。 ドキュメントのワークフローで、ドキュメントの整合性を確保する必要がある場合に特に役立ちます。

また、以下に示すように、ユーザー注釈やユーザー印刷などを無効にすることもできます:

: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");
$vbLabelText   $csharpLabel

権限の設定は文書のパスワードと関連しており、以下のように動作します。 たとえば、AllowUserCopyPasteContent プロパティを false に設定することは、コンテンツのコピー/貼り付けを防ぐことを目的としています:

  • パスワードが設定されていない場合: パスワードがないと、コンテンツのコピー/貼り付けはブロックされたままです。
  • ユーザーパスワードが設定された場合: ユーザーパスワードが設定されている場合、正しいパスワードを入力するとコンテンツのコピー/貼り付けが許可されます。
  • オーナーパスワードが設定された場合: オーナーパスワードが設定されている場合、ユーザーパスワードのみを入力してもコピー/貼り付け機能は解除されません。 しかし、正しいオーナーパスワードを入力するとコンテンツのコピー/貼り付けが許可されます。
ファイルのアクセス許可ダイアログで、無効なセキュリティ機能が表示され、印刷だけが有効になっている

関連した記事では、事前定義されたカスタムメタデータについて詳しく説明しています。 このリンクをたどってさらに学びましょう: "PDFメタデータの設定と編集方法。"

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: PDFの署名とセキュリティの確保

高度なセキュリティ機能を必要とするエンタープライズ アプリケーションでは、文書の長期保存のために 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プロパティにアクセスしてパスワードとアクセス許可を設定することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース