OAuth2 y DotNetOpenAuth: implementación del cliente personalizado de Google

Tengo un problema al implementar OAuth2Client personalizado para Google usando DotNetOpenAuth y MVC4.

Llegué al punto en el que puedo realizar correctamente la solicitud de autorización al punto final de Googlehttps://accounts.google.com/o/oauth2/auth

y Google pregunta si el usuario permitirá el acceso de mi aplicación a su cuenta. Todo bien hasta ahora. Cuando el usuario hace clic en "Aceptar", google llama a mi URL de devolución de llamada como se esperaba.

El problema es cuando llamo al método VerifyAuthentication en la clase OAuthWebSecurity (Microsoft.Web.WebPages.OAuth)

var authenticationResult = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

Siempre está devolviendo un AuthenticationResult conIsSuccessful = false yProvider = ""

He buscado en el código para esto, y la clase OAuthWebSecurity intenta obtener el nombre del Proveedor de

Request.QueryString["__provider__"]

pero Google no está enviando esta información de nuevo en la cadena de consulta. El otro proveedor que he implementado (LinkedIn) está devolviendo el nombre del proveedor y todo funciona bien.

No estoy seguro de lo que puedo hacer a partir de este punto, aparte de abandonar las clases Microsoft.Web.WebPages.OAuth y solo usar DotNetOpenAuth sin ellas, pero esperaba que alguien pudiera tener otra solución que pueda probar ...

He buscado mucho, pero parece que no puedo encontrar nada para ayudar ... Me ha resultado realmente difícil encontrar ejemplos de personas que hacen lo mismo, lo que realmente me ha sorprendido.

Cualquier ayuda muy apreciada!