コード例 #1
0
        public IActionResult FindCertificate(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                id = "test";
            }

            using (var store = new X509Store(StoreLocation.CurrentUser))
            {
                store.Open(OpenFlags.ReadOnly);

                X509Certificate2 cert = store.Certificates.OfType <X509Certificate2>().AsEnumerable().FirstOrDefault(c => c.Subject.Contains(id, StringComparison.OrdinalIgnoreCase));

                if (cert != null)
                {
                    var dto = CertificateDto.Map(store, cert);
                    return(Ok(dto));
                }
            }

            return(Ok($"Not found: {id}"));
        }
コード例 #2
0
        public IActionResult Get()
        {
            var items = new List <dynamic>();
            var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);

            store.Open(OpenFlags.ReadOnly);
            var certificates = store.Certificates;

            foreach (var certificate in certificates)
            {
                items.Add(CertificateDto.Map(store, certificate));
            }

            if (items.Any())
            {
                return(Ok(items));
            }

            return(Ok(new
            {
                StoreName = store.Name,
                StoreLocation = store.Location,
            }));
        }