[英]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.