尽管我的问题是一年多以前的事,但从未得到答案,但我想我可能已经找到了解决方法。当Web应用程序正在运行并将第二个CAC插入PC上的其他读取器时,ActivClient读取卡并将证书放入商店。因此,我进入商店并按人员姓名查找证书:
enter code here
答案 0 :(得分:0)
[HttpPost]
public ActionResult GetNewCardEdipi(string name)
{
//test multiple readers
X509Store keystore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
keystore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var clientCert = keystore.Certificates;
var certs = keystore.Certificates.Find(X509FindType.FindBySubjectName, name, false);
var cuser = certs[0];
var sub = cuser.Subject;
string[] strs = sub.Split(',');
string edi = strs[0].Substring(strs[0].LastIndexOf(".") + 1);
//end
return Json(edi);
}
这很好用。