簡體   English   中英

使用流利的驗證從字符串驗證X509Certificate2

[英]Validation of an X509Certificate2 from a string Using fluent validation

我有這堂課

SAMLConfigurationValidator(): AbstractValidator<SAMLConfiguration>
{
  public SAMLConfigurationValidator()
  {
       //some rules....

      //My desired Code

      RuleFor(x => x.Certificate)
              .IsValid().WithMessage("Not a valid certificate");


  }

}

本質上,這需要使用一個字符串(x.Certificate),創建X509Certificate2的實例,然后使用.Verify()或.ChainPolicy方法來確保用戶輸入的字符串證書是有效證書。

我是加密技術的新手,我搜索的大多數案例或示例似乎都在做用例驗證。 在這里,我只想檢查“用戶”輸入的證書是否為有效證書。

解:

public class ValidateCertificate 
  {
    public ValidateCertificate() { }


    static X509Certificate2 GenerateCertificate(string cert)
    {
      try
      {
        byte[] rawData = Convert.FromBase64String(cert);
        return new X509Certificate2(rawData);
      }
      catch 
      {
        return null;
      }

    }

    public bool Validate(string certificate)
    {
      var cert = GenerateCertificate(certificate);
      if (cert != null)
        return cert.Verify();
      return false;
    }
  }

你可以打電話

RuleFor(x => validateCertificate.Validate(x.Certificate))
        .Equal(true)
        .WithMessage("Not a valid Certificate.")
        .WithName("Certificate");

我已經回答了該解決方案,並在原始問題中將其標記了出來。 事實證明X509Certificate2在“驗證”中有一個內置版本,可以很方便地進行驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM