Sto utilizzando la classe This GoogleJsonWebToken
per generare un token di accesso da utilizzare con le chiamate JSON all'API di Google Calendar. Funziona perfettamente bene in IIS espresso sulla mia macchina dev quando uso il seguente (usando il mio servizio effettivo account di posta elettronica):Errore 502 durante la generazione di X509Certificate2 dal certificato p12 nei siti Web di Azure per l'API di Google
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"];
di testare questo sto solo chiamando @Token
a mio avviso cshtml rasoio. Quando lo pubblico sul mio sito Web di Azure, non funziona. Se lascio la classe GoogleJsonWebToken
non modificata ottengo uno 502 - Web server received an invalid response while acting as a gateway or proxy server.
molto inutile senza altre informazioni.
Dopo alcune ricerche su Google, ho trovato this SO post che è un problema simile. Così ho provato la loro soluzione ottengo System.Security.Cryptography.CryptographicException: The system cannot find the file specified.
quando viene eseguito dal mio sito Web di Azure. Quando viene eseguito dalla mia macchina di sviluppo ottengo System.Net.WebException: The remote server returned an error: (400) Bad Request.
che penso sia perché con quella soluzione lo è null
mentre la classe originale non modificata quando viene eseguita sulla mia macchina di sviluppo mi dà qualcosa come {C0E26DC5-5D2C-4C77-8E40-79560F519588}
che viene generata casualmente ogni volta e questo valore viene utilizzato nel processo di firma della firma.
Ho quindi trovato this SO post ma questa soluzione ha prodotto gli stessi risultati dell'ultima soluzione.
Ho anche provato la maggior parte delle diverse combinazioni di X509KeyStorageFlags
inutilmente.
Come posso generare lo CspKeyContainerInfo.KeyContainerName
da solo o altrimenti generare correttamente lo X509Certificate2
?
Sì, questo lo ha fatto per me – NicoJuicy
Esattamente lo stesso problema. Sostituzione di X509KeyStorageFlags.DefaultKeySet con X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet ha fatto il trucco. Molte grazie. – JCallico