デジタル署名は、デジタル文書の真正性と完全性を検証するために使用される電子署名です。文書にデジタル署名をすると、その署名は文書があなたから来たことを確認する役割を果たし、あなたが署名して以来、文書が変更されていないことを示します。

この記事では、C#でPowerPointにデジタル署名を追加する方法を学びます。

PowerPointライブラリを使用してPowerPointにデジタル署名を追加

Microsoft PowerPointアプリは、ユーザーがPPTおよびPPTXプレゼンテーションにデジタル署名を追加できる機能を提供しています。

しかし、C#でPowerPoint PPTまたはPPTXにデジタル署名を追加するには、Aspose.Slides for .NETを使用する必要があります。後者は、シンプルなコード行を使用してプレゼンテーションを作成、変更、操作できるPowerPointライブラリです。Aspose.Slides for .NETのインストールに関する情報は、このインストールガイドを参照してください。

署名証明書を取得する

さらに、PowerPoint文書にデジタル署名を追加するには、署名またはデジタル証明書が必要です。このような証明書は、あなたの身元を特定し証明します。自分の証明書を作成することもできますし、証明書を発行する認証機関から取得することもできます。

デジタル署名したPowerPointプレゼンテーションを誰かに送信すると、その人にあなたの証明書と公開鍵を送信することになります。

C#でPowerPointにデジタル署名を追加する

使用するためのデジタル証明書が準備できていると仮定すると、次の手順でPowerPointプレゼンテーションにデジタル署名を追加できます:

  1. Presentationクラスを使用して、デジタル署名を追加したいPowerPointを読み込みます。
  2. DigitalSignatureクラスを使用して、デジタル署名オブジェクトを作成します。デジタル署名PFXファイルとパスワードを渡します。
  3. PowerPointプレゼンテーションにデジタル署名を追加します。
  4. 修正されたプレゼンテーションを保存します。

以下のC#コードは、PowerPointにデジタル署名を追加する方法を示しています:

using (Presentation pres = new Presentation())
{
    // PFXファイルとPFXパスワードを持つDigitalSignatureオブジェクトを作成
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");

    // 新しいデジタル署名にコメントを追加
    signature.Comments = "Aspose.Slidesデジタル署名テスト。";

    // プレゼンテーションにデジタル署名を追加
    pres.DigitalSignatures.Add(signature);

    // 修正されたプレゼンテーションを保存
    pres.Save("SomeSignedPresentation.pptx", SaveFormat.Pptx);
}

C#でデジタル署名されたPPTを検証する

PowerPoint PPTにデジタル署名を追加することに加え、Aspose.Slides for .NETでは、デジタル署名されたプレゼンテーションを検証することもできます。検証操作は、プレゼンテーションが署名されて以来変更されていないかどうかを確認します。

デジタル署名されたPowerPointプレゼンテーションを検証するには、次の手順を実行します:

  1. Presentationクラスを使用して、検証したいデジタル署名されたPPTを読み込みます。
  2. PowerPointが署名されているかどうかを確認します。
  3. プレゼンテーションに署名するために使用された署名が有効かどうかを確認します。

以下のC#コードは、デジタル署名されたPowerPointを検証する方法を示しています:

// プレゼンテーションを読み込む
using (Presentation pres = new Presentation("SomeSignedPresentation.pptx"))
{
    if (pres.DigitalSignatures.Count > 0)
    {
        bool allSignaturesAreValid = true;

        Console.WriteLine("プレゼンテーションに署名するために使用された署名:");

        // すべてのデジタル署名が有効かどうかを確認
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "有効" : "無効"));
            allSignaturesAreValid &= signature.IsValid;
        }

        if (allSignaturesAreValid)
            Console.WriteLine("プレゼンテーションは真正です。すべての署名が有効です。");
        else
            Console.WriteLine("署名以来、プレゼンテーションが変更されています。");
    }
}

無料ライセンスを取得する

制限なくAspose.Slidesの機能を試してみたいですか?無料の一時ライセンスを取得してください。

結論

この記事では、強力な.NETライブラリを使用して、C#でPowerPointプレゼンテーションにデジタル署名を追加する方法を示しました。PowerPointプレゼンテーションをパスワードで保護する方法を学ぶことにも興味があるかもしれません。

Aspose.Slidesの機能について詳しく知りたい場合は、ドキュメントをご覧ください。質問がある場合は、フォーラムに投稿できます。

関連情報