sau*_*ats 5 c# datetime date x509certificate
我必须使用以下代码检查并确保证书未过期:
if (DateTime.Parse(cert.GetExpirationDateString()) <= DateTime.Now)
{
_logger.Log(LogLevel.Error, "Chain Certificate is Expired");
return false;
}
Run Code Online (Sandbox Code Playgroud)
cert是.net 的X509Certificate类的实例.
面临的问题是GetExpirationDateString函数以字符串格式给出了到期日期(这取决于当前文化的短日期格式)
如果我的机器的短日期格式DD-MM-YY返回到期日21-12-2030为21-12-30,DateTime.Parse功能转换30到1930(如果到期年> 30).
dd/mm/yyyy为了避免这个问题,有没有办法让我的格式永远以格式到期?
Igo*_*gor 10
无论您如何尝试,字符串表示年份30将始终默认转换1930为2030解析DateTime时永远不会转换为.您最好的选择是按照@Glorin的建议并使用X509Certificate2.此类型具有一个构造函数,该构造函数接受X509Certificate的实例.或者,您可以使用其他构造函数之一生成.以下是基于您提供的代码示例:
var cert2 = new X509Certificate2(cert);
if(cert2.NotAfter <= DateTime.Now)
{
_logger.Log(LogLevel.Error, "Chain Certificate is Expired");
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2511 次 |
| 最近记录: |