如何确定哪些个人证书来自C#中的硬件设备?

时间:2013-12-18 01:31:31

标签: c# x509certificate cryptoapi e-token

假设我有当前用户的多个个人证书。但只有一个证书属于Aladdin eToken。

我想确定哪个证书属于Aladdin eToken。

我应该使用X509StoreX509Crtificate吗?

我应该试试eToken SDK吗?

2 个答案:

答案 0 :(得分:0)

这可以帮助您找到证书。 它创建位置和存储列表,并提供证书数量。 在带令牌和带令牌的情况下运行它可以帮助您找到它的位置:

type="module"

答案 1 :(得分:-1)

这取决于Aladdin eToken如何签署证书。如果它发出X509证书并将Issuer字段设置为可识别的东西(例如Aladdin eToken),那么您应该能够找到证书。

// Get the MY store for the current user
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

store.Open(OpenFlags.ReadOnly);

X509Certificate2Collection certs = 
    store.Certificates.Find(X509FindType.FindByIssuerName,
                            "Aladdin eToken");

这应该会获得发行者名称中包含字符串“Aladdin eToken”的所有证书。如果您需要使用不同的标准来标识证书,那么您可以通过Find集合的Certificates方法获得其他有效参数以获得匹配。

例如,如果您要查找特定证书,可以FindByThumbprintFindBySerialNumber