Ich versuche, ein Zertifikat aus einer PFX-Datei in einer WPF-Anwendung zu laden, und es gibt mir einen Zugriff verweigert Fehler.CryptographicException: Zugriff verweigert - Zugriff auf Benutzerspeicher freigeben?
using (FileStream stream = System.IO.File.OpenRead(certificatePath))
{
using (BinaryReader reader = new BinaryReader(stream))
{
buffer = reader.ReadBytes((int)stream.Length);
}
}
X509Certificate2 certificate = new X509Certificate2(buffer, password);
System.Security.Cryptography.CryptographicException: Zugriff verweigert.
bei System.Security.Cryptography.CryptographicException.ThrowCryptographicException (Int32 h) bei System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob (Byte [] rawData, IntPtr Passwort, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle & pCertCtx) bei System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob (Byte [] rawData, Objekt Passwort, X509KeyStorageFlags keyStorageFlags) bei System.Security.Cryptography.X509Certificates.X509Certificate2..ctor (Byte [] rawData, String Passwort) um HelloWorld.HelloClient.Models.Infrastructure. ReadCertificateFromPfxFile (String certificatePath, String Kennwort)
Die letzte Zeile im Code-Schnipsel verursacht eine Ausnahme, und wenn ich es als Administrator ausführen funktioniert es gut. Das Problem scheint, dass der Standardkonstruktor von X509Certificate2 versucht, den privaten Schlüssel in den Benutzerspeicher zu legen. Ich verwende keine Webanwendung. this Beitrag löst mein Problem nicht. Ich denke, der aktuelle Benutzer hat möglicherweise keinen Zugriff auf seinen eigenen privaten Schlüsselspeicher. Aber wie kann ich diesen Zugang geben?
Mögliches Duplikat von [X509Certificate Constructor Exception] (http://stackoverflow.com/questions/9951729/x509certificate-constructor-exception) – MethodMan
@MethodMan Es wird über Webanwendung und Fixes im IIS gesprochen. Ich habe WPF-App, wie kann ich die Erlaubnis geben, Benutzer zu speichern? –