GoogleWebAuthorizationBroker non funziona dall’host IIS

Sto utilizzando il seguente codice per l’autenticazione a Google utilizzando la libreria client di Google .Net.

public static void auth() { string clientId = "xxxxxx.apps.googleusercontent.com"; string clientSecret = "xxxxx"; string[] scopes = new string[] { "https://www.googleapis.com/auth/contacts.readonly" }; // view your basic profile info. try { // Use the current Google .net client library to get the Oauth2 stuff. UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret } , scopes , "test" , CancellationToken.None , new FileDataStore("test")).Result; // Translate the Oauth permissions to something the old client libray can read OAuth2Parameters parameters = new OAuth2Parameters(); parameters.AccessToken = credential.Token.AccessToken; parameters.RefreshToken = credential.Token.RefreshToken; RunContactsSample(parameters); } catch (Exception ex) { Console.WriteLine(ex.Message); } } 

Sto usando il mio ID cliente e la chiave segreta del client. Questo codice funziona perfettamente quando sono in esecuzione da Visual Studio, ma non funziona da dopo essere stato ospitato in IIS.

E ho citato l’URI reindirizzato nella console di google api http: // localhost / authorize /

Il mio URL host IIS è http: //localhost/googleintegration.aspx

Sto affrontando questo problema da un mese, qualcuno può per favore dare una soluzione per questo ..

(Ripubblicazione da https://github.com/google/google-api-dotnet-client/issues/888 )

GoogleWebAuthorizationBroker deve essere utilizzato in un’applicazione che viene eseguita localmente su un computer dell’utente finale. Apre un browser Web localmente consentendo all’utente di autenticarsi. Sembra che tu stia cercando di utilizzare GoogleWebAuthorizationBroker su un computer server, da IIS; dove non funzionerà, in quanto proverà ad aprire un browser web su quel server – questo fallirà, e non sarebbe comunque visibile all’utente finale come sarà sulla macchina server, non sulla sua macchina .

Non l’ho fatto da solo, ma sembra che le istruzioni qui (per un’app Web ASP.NET MVC) possano essere d’aiuto.