Ich habe ein Zertifikat zu überprüfen und sicherzustellen, wird mit dem folgenden Code nicht abgelaufen:C# GetExpirationDateString() Daten in kurzer Datumsformat Rückkehr Ausgabe Erstellung
if (DateTime.Parse(cert.GetExpirationDateString()) <= DateTime.Now)
{
_logger.Log(LogLevel.Error, "Chain Certificate is Expired");
return false;
}
cert
eine Instanz von X509Certificate Klasse von .net ist.
Problem, das mit Blick auf bin, ist GetExpirationDateString Funktion das Datum des Ablaufs im String-Format
(die auf dem kurzen Datumsformat der aktuellen Kultur abhängt) gibt Wenn das kurze Datumsformat meiner Maschine DD-MM-YY
ist es Verfallsdatum zurückgibt 21-12-2030
als 21-12-30
, DateTime.Parse
Funktion konvertiert 30
zu 1930
(wenn das Ablaufjahr> 30 ist).
Gibt es einen Weg, mit dem ich das Zertifikat Ablauf immer in dd/mm/yyyy
Format erhalten kann, um dieses Problem zu vermeiden?
Kann Sie wechseln zu 'x509Certificate2'? Dann können Sie die "NotAfter" -Eigenschaft verwenden, die eine richtige 'DateTime' ist. –
MS Eigentlich empfehlen, x509Certificate2 zu verwenden. : _ASN.1 DER ist das einzige von dieser Klasse unterstützte Zertifikatformat. Für die meisten Szenarien sollten Sie stattdessen die X509Certificate2-Klasse verwenden. _ –
Dank Glorin, Rich Ich verwendete NotAfter-Eigenschaft der X509certificate2-Klasse und es sortierte meine Ausgabe –