从Web应用程序中的第二个智能卡读取器读取数据

时间:2018-12-05 12:39:25

标签: c# cac

尽管我的问题是一年多以前的事,但从未得到答案,但我想我可能已经找到了解决方法。当Web应用程序正在运行并将第二个CAC插入PC上的其他读取器时,ActivClient读取卡并将证书放入商店。因此,我进入商店并按人员姓名查找证书:

enter code here

1 个答案:

答案 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);
    }

这很好用。