ie Verwendung von X509Certificate2 zum Abrufen von PrivateKey verursacht die CryptographicException "Ungültiger Anbietertyp angegeben".

jeder

Ich entwickle eine Webanwendung, die X509Certificate2 verwendet, um einen privaten Schlüssel aus einer Zertifizierungsdatei abzurufen. Das Code-Snippet sieht folgendermaßen aus:

    public static RSACryptoServiceProvider GetSignProviderFromPfx()
    {
        var strFileName = "c:\cer\mycerfile.pfx";
        var strPassword = "000000";            
        X509Certificate2 pc = new X509Certificate2(strFileName, strPassword, X509KeyStorageFlags.MachineKeySet);
        var ThePivateKey = pc.PrivateKey;

        return (RSACryptoServiceProvider)ThePivateKey;
    }

Aber die Anweisung pc.Privatekey verursacht eine System.Security.Cryptography.CryptographicException "Ungültiger Anbietertyp angegeben". Ich bin sicher, die Zertifizierungsdatei hat kein Problem, sie hat wirklich einen privaten Schlüssel. Und die Eigenschaft pc.HasPrivateKey gibt ebenfalls true zurück.

Die Testumgebung ist VS2013, Fenster 7.

Ich habe auch folgendes versucht:

ein. Ich habe es in VS2013 mit iis express getestet, das Problem ist aufgetreten.

b. Ich habe es auf einem anderen Computer mit der gleichen Umgebung wie ich getestet. Das Problem trat auch auf.

c. Ich habe die Anwendung auf einem Server veröffentlicht, auf dem iis unter Windows Web Server 2008 R2 ausgeführt wir

d. Ich habe die Anwendung auf der Windows Azure-Website veröffentlicht, sie hat auch gut funktioniert.

Daher denke ich, dass das Code-Snippet kein Problem hat. Der Hauptgrund für die Ausnahmebedingung ist, dass möglicherweise ein Problem mit der Betriebsumgebung vorliegt. Ich habe das Lese- / Schreibrecht in der Zertifizierungsdatei in verschiedenen Umgebungen überprüft und verglichen. Alle sind gleich.

Kann jemand helfen?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage