Я пытаюсь прочитать атрибуты из цифрового сертификата в C # для нескольких файлов PDF с цифровой подписью.
В той же программе, когда я впервые вызываю функцию VerifySignature, она работает, и я могуполучить детали подписи.Однако, когда я пытаюсь сделать это во второй раз, это терпит неудачу.
PdfReader readerX = new PdfReader(@"Z:\cert\PDF\fdo.pdf");
AcroFields af = readerX.AcroFields;
ArrayList names = af.GetSignatureNames();
for (int i = 0; i < names.Count; ++i)
{
string name = (string)names[i];
PdfPKCS7 pk = af.VerifySignature(name); // It works
MessageBox.Show(pk.SignName);
}
PdfReader readerX2 = new PdfReader(@"Z:\cert\PDF\fdo2.pdf");
AcroFields af2 = readerX2.AcroFields;
ArrayList names2 = af2.GetSignatureNames();
for (int i = 0; i < names2.Count; ++i)
{
String name = (string)names2[i];
PdfPKCS7 pk2 = af2.VerifySignature(name); // System.ArgumentOutOfRangeException exception
MessageBox.Show(pk2.SignName);
}
Я использую разные переменные, и файлы идентичны (fdo2.pdf является копией из fdo.pdf), и оба имеютта же цифровая подпись.Нужно ли каким-то образом "освобождать" первый экземпляр PdfPKCS7, чтобы можно было повторно использовать функциональность?
Заранее спасибо,