¿Cómo configuro return_uri para GoogleWebAuthorizationBroker.AuthorizeAsync?

Estoy tratando de usar elAPI de Google Calendar en miAplicación web no MVC .NET. (Esto parece ser una distinción importante).

He intentado usar el código deeste ejemplo en Google yeste ejemplo en Daimto junto con algunos consejos útiles de una serie depublicaciones relacionadas aquí.

He escrito el siguiente método:

public void GetUserCredential( String userName )
{
    String clientId = ConfigurationManager.AppSettings[ "Google.ClientId" ];            //From Google Developer console https://console.developers.google.com
    String clientSecret = ConfigurationManager.AppSettings[ "Google.ClientSecret" ];    //From Google Developer console https://console.developers.google.com
    String[] scopes = new string[] {
            Google.Apis.Calendar.v3.CalendarService.Scope.Calendar          
    };

    // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
    UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets
    {
        ClientId = clientId,
        ClientSecret = clientSecret             
    }, scopes, userName, CancellationToken.None, new FileDataStore( "c:\\temp" ) ).Result;

    // TODO: Replace FileDataStore with DatabaseDataStore
}

El problema es que cuando se llama a la página OAuth2 de Google,redirect_uri sigue poniéndose ahttp://localhost:<some-random-port>/authorize. No tengo idea de cómo configurar esto en otra cosa, como en el siguiente ejemplo de URL generado porAuthorizeAsync:

https://accounts.google.com/o/oauth2/auth?access_type=offline
    &response_type=code
    &client_id=********.apps.googleusercontent.com
    &redirect_uri=http:%2F%2Flocalhost:40839%2Fauthorize%2F
    &scope=https:%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar

Google responde con unredirect_uri_mismatch página de error con el mensaje:

"El URI de redireccionamiento en la solicitud:http: // localhost: XXXXX / autorizar / no coincide con un URI de redireccionamiento registrado "

Solo puedo registrar tantos URI de redireccionamiento en la página de Credenciales de consola de desarrollador de Google. No estoy dispuesto a registrar 65535 puertos, y quiero usar una página que no sea/authorize en mi sitio Específicamente, quiero usar, durante el desarrollo,http://localhost:888/Pages/GoogleApiRedirect pero no tengo idea de dónde establecería esto, más allá de lo que he hecho en la Consola del desarrollador.

¿Cómo configuro explícitamente el valor deredirect_uri? También estoy abierto a una respuesta en la forma "Este enfoque es completamente incorrecto".

EDITAR:

Después de jugar con esto durante el último día, descubrí que al usar el ID de cliente / Secreto de cliente para la Aplicación nativa en lugar de la Aplicación web, al menos puedo acceder a la página de autorización web de Google sin quejarse de unredirect_uri_mismatch. Esto sigue siendo inaceptable, porque todavía vuelve ahttp://localhost:<some-random-port>/authorize, que está fuera del control de mi aplicación web.

Respuestas a la pregunta(1)

Su respuesta a la pregunta