0

私はこのクラスを持っています

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");
4

1 に答える 1