本文整理汇总了C#中ValidationResult.AddNewLine方法的典型用法代码示例。如果您正苦于以下问题:C# ValidationResult.AddNewLine方法的具体用法?C# ValidationResult.AddNewLine怎么用?C# ValidationResult.AddNewLine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ValidationResult
的用法示例。
在下文中一共展示了ValidationResult.AddNewLine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Validate
/// <summary>
/// Проверка валидности и отозванности с использованием пользовательской политики проверки
/// </summary>
/// <returns>Список сообщений/ошибок о валидности и/или отозвонности сертификата</returns>
public ValidationResult Validate(ICertificate certificate)
{
var result = new ValidationResult();
if (certificate == null)
return result;
//создаем цепочку сертификата
X509Chain ch = new X509Chain();
//отозванность сертификата хотим получать онлайн
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
//хотим проверить всю цепочку сертификатов
ch.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
//проверка валидности самая полная
ch.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags;
//строим цепочку на основе сертификата
ch.Build(certificate.CertificateX509);
result.Add("Проверка цепочки сертификатов:");
result.AddNewLine();
bool isValid = true;
foreach (X509ChainElement element in ch.ChainElements)
{
bool verify = element.Certificate.Verify();
isValid = isValid && verify;
result.Add(" Субъект", element.Certificate.Subject);
result.Add(" Издатель", element.Certificate.Issuer);
result.Add(" Отпечаток", element.Certificate.Thumbprint);
result.Add(" Серийный номер", element.Certificate.SerialNumber);
result.Add(" Срок действия", String.Format("c {0} по {1}", element.Certificate.NotBefore, element.Certificate.NotAfter));
result.Add(verify, " Валиден", verify.ToString());
result.AddNewLine();
}
result.Add(isValid, "Результат проверки цепочки", isValid ? "Сертификат прошел проверку" : "Сертификат НЕ прошел проверку");
return result;
}
示例2: Verify
/// <summary>
/// Проверка файла с подписью на валидность подписи
/// </summary>
/// <returns>Сообщения (или ошибки) о проверки подписи</returns>
public ValidationResult Verify()
{
var result = new ValidationResult();
if (this.Signature == null)
{
result.AddError("Отсутствует файл с подписью!");
return result;
}
//Создаем пакет с подписью для проверки самой подписи
SignedCms cms = null;
if (this.Detached)
{//отсоединенная подпись
//создаем контейнер с оригинальными данными, подпись которых будет проверяться
ContentInfo content = new ContentInfo(this.Original);
//формируем пакет с оригинальными данными и параметрами подписи
cms = new SignedCms(content, true);
}
else
{// присоединенная подпись
//формируем пустой пакет с данными
//так как в случае присоединенной подписи
//данные содержатся в самом подписанном файле
cms = new SignedCms();
}
try
{
//декодируем файл, содержащий подпись
//если вылетает ошибка - значит подпись не верна!!!
cms.Decode(this.Signature);
//возможно, информация о подписаниях отсутствует
if (cms.SignerInfos.Count <= 0)
{
result.AddError("Нет информации о подписях (возможно файл не подписан)");
return result;
}
result.AddInfo("Электронная Подпись Вернa.");
result.AddNewLine();
result.Add("Файл подписан следующим(и) сертификатом(и):");
foreach (SignerInfo si in cms.SignerInfos)
{
var certificate = new Certificate(si.Certificate);
if (_certificate == null)
_certificate = certificate;
result.AddNewLine();
result.Add(certificate.SerialNumber + " [" + certificate.Thumbprint + "]");
result.Add(certificate.SubjectCommonName);
//дергаем время подписания документа текущей подписью
for (int i = 0; i < si.SignedAttributes.Count; i++)
{
if (si.SignedAttributes[i].Oid.Value == "1.2.840.113549.1.9.5") // Oid время подписания
{
Pkcs9SigningTime pkcs9_time = new Pkcs9SigningTime(si.SignedAttributes[i].Values[0].RawData);
result.Add("Дата и Время подписания: " + pkcs9_time.SigningTime.ToString());
break;
}
}
}
}
catch
{
result.AddError("Подпись НЕ верна!");
}
return result;
}