2013-03-20 15 views
8

Mam plik certificate.cer w tym samym katalogu (skopiuj jeśli nowsze) za pomocą klucza RSA wewnątrz jeszcze kiedy próbuję:X509 nie może znaleźć żądanego obiektu

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

uzyskać ten sam

"nie można znaleźć żądany obiekt"

błąd. Jak mogę nie dostać błędu?

+1

Czego można uzyskać sprawdzając wartość certificateFile po ustawieniu? – aaroncatlin

Odpowiedz

0
  1. Pokaż, co zawiera zmienna certificateFile.
  2. Lepiej używać Path.Combine, aby łączyć części ścieżki, zamiast dodawać je i ręcznie wstawiać ukośniki.
+0

D: \ BitWorker \ WheelWorker \ bin \ Release \ Certificate.cer, wskazuje na certyfikat prawidłowo – user2191209

+0

Certyfikat jest w następującym formacie '----- BEGIN RSA PRIVATE KEY ----- ..... ----- KOD PRYWATNY KONIEC RSA ----- ' – user2191209

+0

Możesz zaimportować certyfikat do systemu i załadować go z' X509Store' zamiast z pliku. Ten sposób jest bardziej preferowany. Jeśli można go zastosować w Twojej sprawie, mogę podać przykładowy kod ładowania certyfikatów ze sklepu. – Impworks

3

Możesz po prostu przekazać nazwę pliku do metody new().

Spróbuj:

X509Certificate2 x509 = new X509Certificate2(certificateFile); 

Jeśli certyfikat ma hasło, należy również dostarczyć to (gdzie password jest String):

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

Jak można przeanalizować certyfikat, jeśli masz bajty w zmiennej, a nie plik? – Acidic