Ich verwende die Klasse This GoogleJsonWebToken
, um ein Zugriffstoken zu generieren, das mit Json-Aufrufen der Google Kalender-API verwendet werden kann. Es funktioniert völlig in Ordnung in IIS Express auf meinem dev Maschine, wenn ich die folgende verwenden (mein tatsächliches Dienstkonto E-Mail mit):502 Fehler beim Generieren von X509Certificate2 von p12-Zertifikat in Azure-Websites für Google API
string p12Path = HttpContext.Current.Server.MapPath("~/App_Data/certificate.p12");
var auth = GoogleJsonWebToken.GetAccessToken("[email protected]",
p12Path,
"https://www.googleapis.com/auth/calendar");
string Token = auth["access_token"];
Um dies zu testen, ich bin nur @Token
in meinem cshtml Rasierer Ansicht aufrufen. Wenn ich das auf meiner Azure-Website veröffentliche, funktioniert es nicht. Wenn ich die GoogleJsonWebToken
Klasse unverändert lasse, bekomme ich eine sehr unheilvolle 502 - Web server received an invalid response while acting as a gateway or proxy server.
ohne weitere Informationen.
Nach einigen Google-Suchen fand ich this SO post, die ein ähnliches Problem ist. Also habe ich versucht ihre Lösung Ich bekomme System.Security.Cryptography.CryptographicException: The system cannot find the file specified.
, wenn das von meiner Azure-Website ausgeführt wird. Wenn es von meinem Dev-Rechner läuft, bekomme ich System.Net.WebException: The remote server returned an error: (400) Bad Request.
, was ich denke, ist mit dieser Lösung CspKeyContainerInfo.KeyContainerName
ist null
während die ursprüngliche unmodifizierte Klasse, wenn auf meinem Dev-Rechner läuft mir etwas wie {C0E26DC5-5D2C-4C77-8E40-79560F519588}
, die jedes Mal zufällig generiert wird und dieser Wert verwendet wird bei der Unterzeichnung der Unterschrift.
Ich fand dann this SO post, aber diese Lösung ergab die gleichen Ergebnisse wie die letzte Lösung.
Ich habe auch die meisten der verschiedenen Kombinationen von X509KeyStorageFlags
vergeblich versucht.
Wie kann ich entweder CspKeyContainerInfo.KeyContainerName
selbst generieren oder die X509Certificate2
anderweitig erfolgreich generieren?
Ja, das tat es für mich – NicoJuicy
Genau das gleiche Problem. Ersetzen X509KeyStorageFlags.DefaultKeySet mit X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet hat den Trick gemacht. Danke vielmals. – JCallico