OAuth2 e DotNetOpenAuth - implementando o cliente personalizado do Google

Estou tendo um problema ao implementar o OAuth2Client personalizado para o google usando o DotNetOpenAuth e o MVC4.

Cheguei ao ponto em que posso fazer com sucesso a solicitação de autorização para o endpoint do googlehttps://accounts.google.com/o/oauth2/auth

e o Google pergunta se o usuário permitirá que meu aplicativo acesse sua conta. Tudo bem até agora. Quando o usuário clica em "OK", o Google chama meu URL de retorno de chamada como esperado.

O problema é quando eu chamo o método VerifyAuthentication na classe OAuthWebSecurity (Microsoft.Web.WebPages.OAuth)

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

Ele está sempre retornando um AuthenticationResult comIsSuccessful = false eProvider = ""

Eu olhei para o código para isso, e a classe OAuthWebSecurity tenta obter o nome do provedor de

Request.QueryString["__provider__"]

mas o Google não está enviando essas informações de volta à querystring. O outro provedor que implementei (LinkedIn) está enviando o nome do provedor de volta e tudo funciona bem.

Eu não tenho certeza do que posso fazer a partir deste ponto, além de abandonar as classes Microsoft.Web.WebPages.OAuth e apenas usar DotNetOpenAuth sem eles, mas eu esperava que alguém pudesse ter outra solução que eu possa tentar ...

Eu procurei extensivamente, mas parece que não consigo encontrar nada para ajudar ... Eu achei muito difícil até mesmo encontrar exemplos de pessoas fazendo a mesma coisa, o que realmente me surpreendeu.

Qualquer ajuda muito apreciada!

questionAnswers(2)

yourAnswerToTheQuestion