0

尽管我的问题是一年多前提出的,但从未得到答案,但我想我可能已经找到了解决方法。当 Web 应用程序正在运行并将第二个 CAC 插入 PC 上的附加读卡器时,ActivClient 会读取卡并将证书放入存储中。所以我访问了商店并通过人的名字找到了证书:

enter code here
4

1 回答 1

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

这工作得很好。

于 2018-12-05T12:39:59.360 回答