Ajouter des signatures numériques aux présentations en .NET
Certificat numérique est utilisé pour créer une présentation PowerPoint protégée par mot de passe, indiquée comme créée par une organisation ou une personne particulière. Le certificat numérique peut être obtenu en contactant une organisation autorisée - une autorité de certification. Après avoir installé le certificat numérique dans le système, il peut être utilisé pour ajouter une signature numérique à la présentation via Fichier -> Infos -> Protéger la présentation :
Une présentation peut contenir plusieurs signatures numériques. Après l’ajout de la signature numérique à la présentation, un message spécial apparaît dans PowerPoint :
Pour signer une présentation ou vérifier l’authenticité des signatures de présentation, Aspose.Slides API fournit l’interface IDigitalSignature, l’interface IDigitalSignatureCollection et la propriété IPresentation.DigitalSignatures. Actuellement, les signatures numériques ne sont prises en charge que pour le format PPTX.
Ajouter une signature numérique à partir d’un certificat PFX
L’exemple de code ci‑dessous montre comment ajouter une signature numérique à partir d’un certificat PFX :
- Ouvrez le fichier PFX et transmettez le mot de passe PFX à l’objet DigitalSignature[https://reference.aspose.com/slides/net/aspose.slides/digitalsignature]object.
- Ajoutez la signature créée à l’objet présentation.
using (Presentation pres = new Presentation())
{
// Créez l'objet DigitalSignature avec le fichier PFX et le mot de passe PFX
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");
// Commentaire de la nouvelle signature numérique
signature.Comments = "Aspose.Slides digital signing test.";
// Ajoutez la signature numérique à la présentation
pres.DigitalSignatures.Add(signature);
// Enregistrez la présentation
pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}
Il est maintenant possible de vérifier si la présentation a été signée numériquement et n’a pas été modifiée :
// Ouvrir la présentation
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
if (pres.DigitalSignatures.Count > 0)
{
bool allSignaturesAreValid = true;
Console.WriteLine("Signatures used to sign the presentation: ");
// Vérifier si toutes les signatures numériques sont valides
foreach (DigitalSignature signature in pres.DigitalSignatures)
{
Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
+ signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "VALID" : "INVALID"));
allSignaturesAreValid &= signature.IsValid;
}
if (allSignaturesAreValid)
Console.WriteLine("Presentation is genuine, all signatures are valid.");
else
Console.WriteLine("Presentation has been modified since signing.");
}
}
FAQ
Puis-je supprimer les signatures existantes d’un fichier ?
Oui. La collection de signatures numériques prend en charge la suppression d’éléments individuels et le effacement complet ; après avoir enregistré le fichier, la présentation n’aura plus de signatures.
Le fichier devient‑il “lecture seule” après la signature ?
Non. Une signature préserve l’intégrité et la paternité mais ne bloque pas les modifications. Pour restreindre l’édition, combinez‑la avec "Lecture seule" ou un mot de passe.
La signature s’affichera‑t‑elle correctement dans différentes versions de PowerPoint ?
La signature est créée pour le conteneur OOXML (PPTX). Les versions récentes de PowerPoint qui prennent en charge les signatures OOXML affichent correctement l’état de ces signatures.