[英]How to check if x509 certificate issuer is microsoft
因此,對於一個學校項目,我需要確定是否由Microsoft發行了提供的X509Certificate。 如果它是我必須返回true,否則我必須返回false。
這就是我目前所擁有的
private bool IsAcceptedCertificate(X509Certificate cert)
{
try
{
//if microsoft
if (cert.Issuer.Equals("Microsoft")) {
return true;
}
}
catch (CryptographicException ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
//if not microsoft
return false;
}
編輯1:這是解決此問題的正確方法。 我無法對其進行測試,因為老師無法向我提供證書來進行測試。 但是我仍然需要這個東西才能正常工作。
像這樣的東西就足夠了:
private bool IsAcceptedCertificate(X509Certificate2 cert)
{
try
{
if(cert.Verify() && cert.Issuer.StartsWith("CN=Microsoft"))
{
return true;
}
}
catch (CryptographicException ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
//if not microsoft
return false;
}
它檢查證書是否有效,以及由“某些” Microsoft CA頒發的證書。 更具體地說,您可以檢查所有Microsoft CA,而不是CN = Microsoft *
編輯:在Windows 10計算機上的受信任的根證書頒發機構存儲中,有4個受信任的Micorosft根證書。 “ CN = Microsoft根證書頒發機構”,“ CN = Microsoft根證書頒發機構”,“ CN = Microsoft根證書頒發機構2010”和“ CN = Microsoft根證書頒發機構2011”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.