امضاهای دیجیتال

امضاهای دیجیتال

Aspose.Words FOSS برای .NET می‌تواند امضاهای دیجیتالی را که قبلاً به یک .docx سند از طریق Aspose.Words.DigitalSignatures فضای نام. این نسخه شامل امضا verification — خواندن فرادادهٔ امضا، بررسی اعتبار، و بررسی گواهی امضا کننده. این نسخه قابلیت ایجاد امضاهای جدید روی یک سند را شامل نمی‌شود.


خواندن امضاها از یک سند

هر Document یک ویژگی DigitalSignatures را ارائه می‌دهد که یک DigitalSignatureCollection برمی‌گرداند — یک مجموعهٔ فقط-خواندنی و قابل شمارش از اشیای DigitalSignature که قبلاً در فایل بارگذاری شده وجود دارند. DigitalSignatureUtil.LoadSignatures(fileName) (و بارگذاری LoadSignatures(stream)) امضاها را مستقیماً از یک فایل یا جریان می‌خواند بدون آنکه سند کامل را در یک شیء Document بارگذاری کند، که وقتی فقط نیاز به بررسی وضعیت امضا دارید مفید است. ویژگی IsValid مجموعه گزارش می‌دهد که آیا هر امضای موجود معتبر است یا نه، و Count تعداد امضاهای یافت شده را گزارش می‌کند.


بررسی یک امضای منفرد

هر DigitalSignature IsValid را ارائه می‌دهد (اینکه آیا امضا از نظر cryptographic معتبر است)، SignatureType (یک مقدار DigitalSignatureType — CryptoApi، XmlDsig یا Unknown)، SignTime، Comments، SubjectName، IssuerName و بایت‌های خام SignatureValue. ویژگی CertificateHolder یک شیء CertificateHolder را برمی‌گرداند که گواهی امضا کننده را می‌پیچد؛ ویژگی Certificate آن X509Certificate2 زیرین را نشان می‌دهد تا بتوانید فیلدهای استاندارد گواهی (صادر کننده، موضوع، دورهٔ اعتبار) را با APIهای گواهی خود .NET بررسی کنید.


چه چیزهایی در این نسخه پشتیبانی نمی‌شوند

سطح API همچنان اعضای مرتبط با امضا را اعلام می‌کند — DigitalSignatureUtil.Sign(), SignOptions، و XmlDsigLevel — برای سازگاری ساختاری با مدل شیء Aspose.Words تجاری برای .NET، اما ایجاد امضای دیجیتال جدید روی یک سند در این نسخهٔ FOSS عملی نیست. از این نسخه برای verify امضاهایی که قبلاً در یک سند وجود دارند؛ یک جریان کار امضای دیجیتال نیاز دارد به Aspose.Words برای .NET.


نکات و بهترین شیوه‌ها

  • به جای باز کردن کامل Document، وقتی فقط نیاز به بررسی این دارید که آیا فایلی امضا شده است، از DigitalSignatureUtil.LoadSignatures() استفاده کنید — این کار هزینهٔ تجزیهٔ کل بدنهٔ سند را جلوگیری می‌کند.
  • ابتدا DigitalSignatureCollection.IsValid را بررسی کنید تا به سرعت پاس/فیل را تعیین کنید قبل از این که مقادیر فردی DigitalSignature.IsValid را مرور کنید.
  • SignatureType به شما می‌گوید کدام مکانیزم امضا، امضا را تولید کرده است (CryptoApi در مقابل XmlDsig)؛ این موضوع بر این که کدام فیلدهای گواهی معنی‌دار هستند، تأثیر می‌گذارد.
  • در هر خط لولهٔ خودکار دریافت سند، IsValid == false را به‌عنوان یک وضعیت شکست سخت در نظر بگیرید — متادیتای امضا را از یک امضای نامعتبر به‌عنوان قابل اعتماد نشان ندهید.

مشکلات رایج

مشکلدلیلرفع
DigitalSignatures.Count برابر ۰ بر روی یک .docx امضاشده استفایل توسط ابزاری که بخش امضا را حذف کرد، دوباره ذخیره شددر برابر فایل اصلی امضاشده بررسی کنید، نه نسخه‌ای که دوباره ذخیره شده است
امضا گزارش می‌دهد IsValid = falseمحتوی سند پس از امضا تغییر کرده است، یا گواهی غیرقابل اعتماد/منقضی استبه‌عنوان نامعتبر در نظر بگیرید؛ سعی نکنید "repair" امضا را انجام دهید
تلاش برای امضای یک سند هیچ اثری نداردامضا در این نسخهٔ FOSS پیاده‌سازی نشده استاز Aspose.Words برای .NET (commercial) در فرآیندهای امضای الکترونیکی استفاده کنید
CertificateHolder.Certificate هنگام بررسی خطا می‌اندازدداده‌های زیرین گواهی‌نامه خراب هستند یا بخش امضا مخدوش استتأیید کنید که فایل منبع یک سند امضاشده، اصیل و بدون تغییر است

FAQ

آیا Aspose.Words FOSS برای .NET می‌تواند سندی را امضا کند؟

نه. این نسخه می‌تواند امضاهای دیجیتال موجود را بررسی کند اما نمی‌تواند امضاهای جدید ایجاد کند. روش DigitalSignatureUtil.Sign() و کلاس SignOptions در سطح API برای سازگاری ساختاری وجود دارند، اما امضا کردن در اینجا قابل عملکرد نیست.

چگونه می‌توانم بررسی کنم که آیا سند امضا شده است بدون اینکه آن را به طور کامل بارگذاری کنم؟

متد DigitalSignatureUtil.LoadSignatures(fileName) را فراخوانی کنید، که یک DigitalSignatureCollection را مستقیماً از فایل برمی‌گرداند.

معنی DigitalSignatureCollection.IsValid چیست؟

این true است فقط زمانی که هر امضای موجود در مجموعه به‌طور جداگانه معتبر باشد — روشی سریع برای بررسی یکپارچگی کلی امضای سند قبل از بررسی هر DigitalSignature.

جزئیات گواهی برای یک امضا را از کجا می‌توانم دریافت کنم؟

از طریق DigitalSignature.CertificateHolder.Certificate، که یک .NET X509Certificate2 استاندارد برمی‌گرداند.


API Reference خلاصه

کلاس / متدتوضیح
Document.DigitalSignaturesامضاهایی که قبلاً به سند بارگذاری‌شده پیوست شده‌اند
DigitalSignatureUtil.LoadSignatures()امضاها را از یک فایل یا جریان بخوانید بدون بارگذاری کل سند
DigitalSignatureCollectionمجموعه فقط-خواندنی از اشیای DigitalSignature؛ IsValid، Count
DigitalSignatureیک امضای تکی: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeنوع شمارشی: CryptoApi, XmlDsig, Unknown
CertificateHolderمحافظت می‌کند از امضای X509Certificate2

همچنین ببینید:

 فارسی