DigitalSignatureCollection
محتويات
[
يخفي
]DigitalSignatureCollection class
يوفر مجموعة للقراءة فقط من التوقيعات الرقمية المرفقة بالمستند.
لمعرفة المزيد، قم بزيارةالعمل مع التوقيعات الرقمية مقالة توثيقية.
public class DigitalSignatureCollection : IEnumerable<DigitalSignature>
المنشئون
اسم | وصف |
---|---|
DigitalSignatureCollection() | Default_Constructor |
الخصائص
اسم | وصف |
---|---|
Count { get; } | الحصول على عدد العناصر الموجودة في المجموعة. |
IsValid { get; } | إرجاعحقيقي إذا كانت كافة التوقيعات الرقمية في هذه المجموعة صالحة ولم يتم التلاعب بالمستند بـ فسيتم إرجاعه أيضًاحقيقي إذا لم يكن هناك توقيعات رقمية. يعودخطأ شنيع إذا كان هناك توقيع رقمي واحد على الأقل غير صالح. |
Item { get; } | الحصول على توقيع المستند في الفهرس المحدد. |
طُرق
اسم | وصف |
---|---|
GetEnumerator() | يُرجع كائن عداد القاموس الذي يمكن استخدامه للتكرار على كافة العناصر الموجودة في المجموعة. |
ملاحظات
أمثلة
يوضح كيفية التحقق من صحة وعرض المعلومات حول كل توقيع في المستند.
Document doc = new Document(MyDir + "Digitally signed.docx");
foreach (DigitalSignature signature in doc.DigitalSignatures)
{
Console.WriteLine($"{(signature.IsValid ? "Valid" : "Invalid")} signature: ");
Console.WriteLine($"\tReason:\t{signature.Comments}");
Console.WriteLine($"\tType:\t{signature.SignatureType}");
Console.WriteLine($"\tSign time:\t{signature.SignTime}");
Console.WriteLine($"\tSubject name:\t{signature.CertificateHolder.Certificate.SubjectName}");
Console.WriteLine($"\tIssuer name:\t{signature.CertificateHolder.Certificate.IssuerName.Name}");
Console.WriteLine();
}
يوضح كيفية توقيع المستندات بشهادات X.509.
// التحقق من عدم توقيع المستند.
Assert.False(FileFormatUtil.DetectFileFormat(MyDir + "Document.docx").HasDigitalSignature);
// أنشئ كائن حامل الشهادة من ملف PKCS12، والذي سنستخدمه لتوقيع المستند.
CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);
// هناك طريقتان لحفظ نسخة موقعة من المستند في نظام الملفات المحلي:
// 1 - قم بتعيين مستند باسم ملف نظام محلي واحفظ نسخة موقعة في موقع محدد بواسطة اسم ملف آخر.
DigitalSignatureUtil.Sign(MyDir + "Document.docx", ArtifactsDir + "Document.DigitalSignature.docx",
certificateHolder, new SignOptions() { SignTime = DateTime.Now } );
Assert.True(FileFormatUtil.DetectFileFormat(ArtifactsDir + "Document.DigitalSignature.docx").HasDigitalSignature);
// 2 - خذ مستندًا من الدفق واحفظ نسخة موقعة في دفق آخر.
using (FileStream inDoc = new FileStream(MyDir + "Document.docx", FileMode.Open))
{
using (FileStream outDoc = new FileStream(ArtifactsDir + "Document.DigitalSignature.docx", FileMode.Create))
{
DigitalSignatureUtil.Sign(inDoc, outDoc, certificateHolder);
}
}
Assert.True(FileFormatUtil.DetectFileFormat(ArtifactsDir + "Document.DigitalSignature.docx").HasDigitalSignature);
// يرجى التحقق من صحة جميع التوقيعات الرقمية للمستند والتحقق من تفاصيلها.
Document signedDoc = new Document(ArtifactsDir + "Document.DigitalSignature.docx");
DigitalSignatureCollection digitalSignatureCollection = signedDoc.DigitalSignatures;
Assert.True(digitalSignatureCollection.IsValid);
Assert.AreEqual(1, digitalSignatureCollection.Count);
Assert.AreEqual(DigitalSignatureType.XmlDsig, digitalSignatureCollection[0].SignatureType);
Assert.AreEqual("CN=Morzal.Me", signedDoc.DigitalSignatures[0].IssuerName);
Assert.AreEqual("CN=Morzal.Me", signedDoc.DigitalSignatures[0].SubjectName);
أنظر أيضا
- class DigitalSignature
- مساحة الاسم Aspose.Words.DigitalSignatures
- المجسم Aspose.Words