2013-03-20 40 views
8

Tôi có một tập tin certificate.cer trong cùng thư mục (sao chép nếu mới hơn) với khóa RSA bên trong nhưng khi tôi thử:X509 Không thể tìm thấy yêu cầu đối tượng

string certificateFile = Environment.CurrentDirectory + "\\Certificate.cer"; 
X509Certificate2 x509 = new X509Certificate2(X509Certificate.CreateFromCertFile(certificateFile)); 

Tôi nhận được cùng một

"Không thể tìm thấy đối tượng được yêu cầu"

lỗi. Làm thế nào tôi có thể không nhận được lỗi?

+1

gì bạn nhận được nếu bạn kiểm tra giá trị của certificateFile sau khi cài đặt nó? – aaroncatlin

Trả lời

0
  1. Hiển thị biến số certificateFile của bạn.
  2. Tốt hơn nên sử dụng Path.Combine để nối các phần đường dẫn, thay vì thêm chúng và chèn dấu gạch chéo theo cách thủ công.
+0

D: \ BitWorker \ WheelWorker \ bin \ Release \ Certificate.cer, trỏ đến chứng chỉ đúng – user2191209

+0

cert có định dạng sau '----- BEGIN RSA PRIVATE KEY ----- ..... ----- END RSA PRIVATE KEY ----- ' – user2191209

+0

Bạn có thể nhập chứng chỉ vào hệ thống và tải nó từ' X509Store' thay vì từ một tệp. Bằng cách này là thích hợp hơn. Nếu nó có thể được áp dụng cho trường hợp của bạn, tôi có thể cung cấp mã mẫu về cách tải chứng chỉ từ cửa hàng. – Impworks

3

Bạn chỉ có thể chuyển tên tệp vào phương thức() mới.

Hãy thử:

X509Certificate2 x509 = new X509Certificate2(certificateFile); 

Nếu giấy chứng nhận có một mật khẩu, bạn cũng phải cung cấp này (nơi password là một String):

X509Certificate2 x509 = new X509Certificate2(certificateFile, password); 
+0

Làm cách nào để phân tích chứng chỉ nếu bạn có các byte trong một biến, không phải tệp? – Acidic

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