Używam klasy This GoogleJsonWebToken
do generowania tokenu dostępu, który będzie używany w połączeniu json z interfejsem API Kalendarza Google. To działa perfekcyjnie w IIS Express, na moim komputerze dev kiedy używać następujących (korzysta z mojego konta email rzeczywisty Service)Błąd 502 podczas generowania certyfikatu X509Certificate2 z certyfikatu p12 na stronach internetowych platformy Azure dla interfejsu API 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"];
Aby to Dzwonię @Token
moim zdaniem cshtml brzytwa test. Po opublikowaniu tego na mojej witrynie Azure nie działa. Jeśli zostanę niezmieniony z klasy GoogleJsonWebToken
, otrzymam bardzo nieprzydatne 502 - Web server received an invalid response while acting as a gateway or proxy server.
bez żadnych innych informacji.
Po kilku przeszukaniach w Google znalazłem this SO post, który jest podobny problem. Więc próbowałem ich rozwiązania, otrzymuję System.Security.Cryptography.CryptographicException: The system cannot find the file specified.
, gdy jest uruchamiany z mojej witryny Azure. Kiedy jest uruchamiany z mojej maszyny dev dostaję System.Net.WebException: The remote server returned an error: (400) Bad Request.
, co moim zdaniem to dlatego, że z tym rozwiązaniem CspKeyContainerInfo.KeyContainerName
jest null
, podczas gdy oryginalna niemodyfikowana klasa po uruchomieniu na mojej maszynie programistycznej daje mi coś w rodzaju {C0E26DC5-5D2C-4C77-8E40-79560F519588}
, które jest losowo generowane za każdym razem i ta wartość jest używana w procesie podpisywania podpisu.
Znalazłem this SO post, ale to rozwiązanie przyniosło takie same wyniki, jak ostatnie rozwiązanie.
Próbowałem również większość różnych kombinacji X509KeyStorageFlags
bezskutecznie.
Jak samodzielnie wygenerować CspKeyContainerInfo.KeyContainerName
lub w inny sposób pomyślnie wygenerować X509Certificate2
?
Tak, zrobiłem to dla mnie – NicoJuicy
Dokładnie ten sam problem. Zastępowanie zestawu X509KeyStorageFlags.DefaultKeySet przy użyciu X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet rozwiązało problem. Wielkie dzięki. – JCallico