2010-01-04 50 views
7

Tôi muốn cài đặt chứng chỉ trên máy nếu chưa cài đặt chứng chỉ. Tôi đã thử kiểm tra xem cửa hàng có chứa chứng chỉ hay không nhưng bằng cách nào đó cửa hàng của tôi luôn trống. Tôi đã kiểm tra thư mục "Cơ quan chứng nhận trung gian" và tìm thấy 18 chứng chỉ ở đó. Vậy tại sao mã này viết 0?Cách đọc chứng chỉ từ kho chứng chỉ của tôi?

X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); 
Console.WriteLine(store.Certificates.Count); 

Tôi cũng đã thử StoreLocation.CurrentUser. Tôi đang làm gì sai?

Trả lời

8

Bạn phải gọi store.Open(OpenFlags.ReadWrite); trước khi có thể truy cập chứng chỉ.

0

Một giải thích có thể có thể là quy trình chạy mã này có thể không có quyền đối với cửa hàng cụ thể đó.

Cửa hàng Cert thực sự chỉ là một trình bao bọc xung quanh một phần đặc biệt của hệ thống tệp và tất cả các chứng chỉ thực sự là các tệp. Tất cả đều có Danh sách điều khiển truy cập (ACL), vì vậy nếu bạn không có quyền phù hợp, bạn không thể nhìn thấy chúng.

Bạn có thể dễ dàng xác minh xem đây có phải là vấn đề của bạn hay không bằng cách chạy mã với các đặc quyền của Quản trị viên (lưu ý là UAC).

Các vấn đề liên quan