最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 獲取PDF中的數(shù)字簽名證書

 更新時間:2021年11月26日 11:07:55   作者:E-iceblue  
PDF中的加數(shù)字簽名是對文檔權(quán)威性的有效證明。本文將以C#代碼示例展示如何來獲取PDF中的數(shù)字簽名證書信息。感興趣的小伙伴可以學(xué)習(xí)一下

PDF中的加數(shù)字簽名是對文檔權(quán)威性的有效證明。我們在向PDF文檔添加簽名時,需要準(zhǔn)備可信任的簽名證書。同時,對已有的簽名,可驗(yàn)證簽名是否有效,也可以獲取文檔中的簽名證書信息。下面,以C#代碼示例展示如何來獲取PDF中的數(shù)字簽名證書信息。

環(huán)境準(zhǔn)備

需要在程序中導(dǎo)入Spire.Pdf.dll。這里以一個控制臺應(yīng)用程序?yàn)槔?,引用dll可選擇以下兩種方法中的任意一種即可:

方法1:打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”:

選擇“瀏覽”,“瀏覽”,并找到本地路徑BIN文件夾下的Spire.Pdf.dll文件:

添加到引用列表后,勾選,點(diǎn)擊“OK”完成引用:

方法2:通過NuGet安裝。

在VS程序中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”:

點(diǎn)擊“搜索”,在搜索框中輸入,點(diǎn)擊包,安裝:

或者通過PM控制臺安裝:

Install-Package Spire.PDF -Version 7.11.1

代碼示例

實(shí)現(xiàn)讀取簽名的證書,本次代碼主要分為以下步驟:

1. 實(shí)例化PdfDocument類的對象,并通過PdfDocument. LoadFromFile(string filename)方法加載PDF文檔。

2. 通過PdfFormWidget. FieldsWidget屬性獲取PdfFormFieldWidgetCollection類的域集合

3. 通過for循環(huán)遍歷所有域,并判斷集合中的域是否為PdfSignatureFieldWidget類的簽名域。

4. 獲取PdfSignatureFieldWidget類的簽名域后,通過其提供的PdfSignatureFieldWidget. Signature.Certificate屬性獲取簽名證書,以及該屬性下枚舉的20余種方法(如下圖)來獲取證書的詳細(xì)信息。

(本次代碼中僅簡單列舉使用了2種方法獲取證書信息。)

5. 最后通過控制臺輸出獲取的證書信息。

C#

using Spire.Pdf;
using Spire.Pdf.Widget;
using System;

namespace GetCertificateInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            //實(shí)例化PdfDocument類的對象,并加載PDF文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("test.pdf");

            //獲取域集合
            PdfFormWidget pdfFormWidget = (PdfFormWidget)pdf.Form;
            PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.FieldsWidget;

            //遍歷域
            for (int i = 0; i < pdfFormFieldWidgetCollection.Count; i++)
            {
                //判定是否為簽名域
                if (pdfFormFieldWidgetCollection[i] is PdfSignatureFieldWidget)
                {
                    //獲取簽名域
                    PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget)pdfFormFieldWidgetCollection[i];

                    //獲取簽名證書
                    string certificateInfo = signatureFieldWidget.Signature.Certificate.ToString();
                    
                    //獲取證書格式
                    string format = signatureFieldWidget.Signature.Certificate.GetFormat();

                    Console.WriteLine(certificateInfo+ "\n"+ "[CertificateFormat]\n " + format );
                }
            }
            Console.ReadKey();          
        }
    }
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Widget

Namespace GetCertificateInfo
    Class Program
        Private Shared Sub Main(args As String())
            '實(shí)例化PdfDocument類的對象,并加載PDF文檔
            Dim pdf As New PdfDocument()
            pdf.LoadFromFile("test.pdf")

            '獲取域集合
            Dim pdfFormWidget As PdfFormWidget = DirectCast(pdf.Form, PdfFormWidget)
            Dim pdfFormFieldWidgetCollection As PdfFormFieldWidgetCollection = pdfFormWidget.FieldsWidget

            '遍歷域
            For i As Integer = 0 To pdfFormFieldWidgetCollection.Count - 1
                '判定是否為簽名域
                If TypeOf pdfFormFieldWidgetCollection(i) Is PdfSignatureFieldWidget Then
                    '獲取簽名域
                    Dim signatureFieldWidget As PdfSignatureFieldWidget = DirectCast(pdfFormFieldWidgetCollection(i), PdfSignatureFieldWidget)

                    '獲取簽名證書
                    Dim certificateInfo As String = signatureFieldWidget.Signature.Certificate.ToString()

                    '獲取證書格式
                    Dim format As String = signatureFieldWidget.Signature.Certificate.GetFormat()

                    Console.WriteLine(Convert.ToString((certificateInfo & Convert.ToString(vbLf)) + "[CertificateFormat]" & vbLf & " ") & format)
                End If
            Next
            Console.ReadKey()
        End Sub
    End Class
End Namespace

讀取結(jié)果

到此這篇關(guān)于C# 獲取PDF中的數(shù)字簽名證書的文章就介紹到這了,更多相關(guān)C# 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 輕松學(xué)習(xí)C#的基礎(chǔ)入門

    輕松學(xué)習(xí)C#的基礎(chǔ)入門

    輕松學(xué)習(xí)C#的基礎(chǔ)入門,了解C#最基本的知識點(diǎn),C#是一種簡潔的,類型安全的一種完全面向?qū)ο蟮拈_發(fā)語言,是Microsoft專門基于.NET Framework平臺開發(fā)的而量身定做的高級程序設(shè)計語言,需要的朋友可以參考下
    2015-11-11
  • C#中volatile與lock用法

    C#中volatile與lock用法

    這篇文章主要介紹了C#中volatile與lock用法,較為詳細(xì)的分析了C#中volatile與lock的適用情況及用法實(shí)例,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • C#啟動外部程序的幾種常用方法匯總

    C#啟動外部程序的幾種常用方法匯總

    這篇文章主要介紹了C#啟動外部程序的幾種常用方法匯總,對C#初學(xué)者來說有很高的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • Entity?Framework使用ObjectContext類

    Entity?Framework使用ObjectContext類

    這篇文章介紹了Entity?Framework使用ObjectContext類的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#實(shí)現(xiàn)數(shù)字華容道游戲

    C#實(shí)現(xiàn)數(shù)字華容道游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)數(shù)字華容道游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#判斷本地文件是否處于打開狀態(tài)的方法

    C#判斷本地文件是否處于打開狀態(tài)的方法

    這篇文章主要介紹了C#判斷本地文件是否處于打開狀態(tài)的方法,涉及C#操作文件的技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-05-05
  • C# Onnx實(shí)現(xiàn)輕量實(shí)時的M-LSD直線檢測

    C# Onnx實(shí)現(xiàn)輕量實(shí)時的M-LSD直線檢測

    這篇文章主要為大家詳細(xì)介紹了C#如何結(jié)合Onnx實(shí)現(xiàn)輕量實(shí)時的M-LSD直線檢測,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C#使用StreamReader和StreamWriter類讀寫操作文件

    C#使用StreamReader和StreamWriter類讀寫操作文件

    這篇文章介紹了C#使用StreamReader和StreamWriter類讀寫操作文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#統(tǒng)計字符串里中文漢字個數(shù)的方法

    C#統(tǒng)計字符串里中文漢字個數(shù)的方法

    這篇文章主要介紹了C#統(tǒng)計字符串里中文漢字個數(shù)的方法,本文通過正則實(shí)現(xiàn)統(tǒng)計出一段字符串里中文字?jǐn)?shù),需要的朋友可以參考下
    2014-08-08
  • Unity3D 計時器的實(shí)現(xiàn)代碼(三種寫法總結(jié))

    Unity3D 計時器的實(shí)現(xiàn)代碼(三種寫法總結(jié))

    這篇文章主要介紹了Unity3D 計時器的實(shí)現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

长丰县| 丰宁| 桓台县| 吉木萨尔县| 湄潭县| 福建省| 双牌县| 富源县| 南康市| 容城县| 南充市| 襄城县| 吴桥县| 池州市| 墨脱县| 中卫市| 望江县| 米林县| 江油市| 河西区| 英山县| 邯郸县| 南开区| 观塘区| 沧源| 邳州市| 巴彦淖尔市| 蕲春县| 铜陵市| 宁蒗| 阿克苏市| 红安县| 锦州市| 永登县| 策勒县| 北安市| 交城县| 叙永县| 赣榆县| 荥经县| 安达市|