有什么方法可以使用来自 AD 服务器的 c# 获取 X509 公共证书以加密电子邮件。现在我正在使用本地存储来获取证书和加密邮件。
static public X509Certificate2 GetRecipientCertPublic(string recipientName)
{
X509Store storeAddressBook =
new X509Store(StoreName.AddressBook, StoreLocation.CurrentUser);
storeAddressBook.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certColl =
storeAddressBook.Certificates.Find(X509FindType.FindBySubjectName, recipientName, false);
storeAddressBook.Close();
if (certColl.Count != 0)
{
return certColl[0];
}
else
{
return null;
}
}
正如我所见,Outlook 中的行为有所不同。即使 Recipeint 的公共证书不存在于本地机器证书管理器中。它能够从组织的中心服务器或广告服务器(我不太确定)获取公共证书并发送加密邮件。