Frage

Ich habe einige Probleme beim Importieren und einen privaten Schlüssel mit dem ASPNET Benutzer zugreifen. Ich weiß, dass, wenn man einen privaten Schlüssel (PFX-Datei) importiert manuell, in den Fenstern, eine Option erhalten, den Schlüssel als exportierbar zu markieren. Nun, soweit ich das beurteilen kann, ist dies erforderlich, um diesen privaten Schlüssel abrufen später.

Mein Problem kommt, dass ich die privaten Schlüssel im Code als ASPNET Benutzer importieren, und es scheint nicht, einen Weg, um es als exportierbar zu markieren, in der Art und Weise, dass der Windows-Zertifikat Import-Assistent tut. Um zu klären, der Import funktioniert gut, aber wenn ich die Details Zugriff auf dem nun importierte Zertifikat, gibt es keine privaten Schlüsseldaten.

Dies ist der Code, den ich mit dem Zertifikat zu importieren, wenn ich bereits die PFX-Datei geöffnet habe, mit dem richtigen Kennwort.

public void ImportCertificate(X509Certificate2 cert, StoreName name, StoreLocation loc)
{
    X509Store certStore = new X509Store(name, loc);
    StorePermission permission = new StorePermission(PermissionState.Unrestricted);
    permission.Flags = StorePermissionFlags.AddToStore;
    permission.Assert();
    certStore.Open(OpenFlags.ReadWrite);
    certStore.Add(cert);
    certStore.Close();
}

Am Ausmisten mir die Berechtigungen oder die Art, wie ich diese privaten Schlüssel importieren? Oder bin ich über diese völlig in die falsche Richtung gehen?

War es hilfreich?

Lösung

Ich glaube, Sie brauchen die X509KeyStorageFlags.Exportable Flag setzen, wenn Sie das Zertifikat importieren. Sie zeigen nicht, dass Code, aber es gibt eine Überlastung der Import-Methode mit dieser Signatur:

public override void Import(string fileName, string password, 
                            X509KeyStorageFlags keyStorageFlags);

oder diese:

public override void Import(byte[] rawData, string password, 
                            X509KeyStorageFlags keyStorageFlags);

Welche lassen Sie es festlegen, bevor Sie importieren. Ansonsten alles sieht gut aus!

Richard

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top