繁体   English   中英

Windows智能卡身份验证以访问网站数据

[英]Windows Smart Card Authentication to Access Website-Data

我必须从网站上获取项目的数据。 要访问此页面,需要带PIN的智能卡。 不幸的是,目前我还不知道如何在C#中实现这一点。

目标:1.使用智能卡和PIN在网站上进行身份验证2.获取/发布一些数据

有人可以为我提供解决此问题的方法。

更新

当我尝试通过浏览器访问网站时,显示“正常” Windows SmartCard对话框。

我的目标是编写一个仅在页面上执行GET请求的控制台应用程序。 完整的身份验证应在后台运行。 智能卡的PIN可以进行硬编码。

好的,我已经找到解决问题的方法。 如果有人应该有类似的想法,我将提供我的解决方案:

 X509Certificate2 cert = PickCertificate();

        var req = (HttpWebRequest)WebRequest.Create("//");

        req.CookieContainer = new CookieContainer(); 
        req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";
        req.ClientCertificates.Add(cert);
        req.UseDefaultCredentials = true;

        ServicePointManager.ServerCertificateValidationCallback = (c, certificate, chain, errors) => true;

        var res = (HttpWebResponse)req.GetResponse();

        public static X509Certificate2 PickCertificate()
        {
        X509Certificate2 cert;
        var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

        store.Open(OpenFlags.ReadOnly);

        if (store.Certificates.Count == 1)
            cert = store.Certificates[0];
        else
            cert = X509Certificate2UI.SelectFromCollection(store.Certificates, "Caption", "Message", X509SelectionFlag.SingleSelection)[0];

        store.Close();
        return cert;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM