OAuth2 i DotNetOpenAuth - wdrażanie niestandardowego klienta Google

Mam problem z implementacją niestandardowego OAuth2Client dla google za pomocą DotNetOpenAuth i MVC4.

Doszedłem do punktu, w którym mogę pomyślnie wysłać żądanie autoryzacji do punktu końcowego Googlehttps://accounts.google.com/o/oauth2/auth

a Google pyta, czy użytkownik zezwoli mojej aplikacji na dostęp do swojego konta. Jak dotąd wszystko dobrze. Gdy użytkownik kliknie „OK”, Google zadzwoni do mojego adresu zwrotnego zgodnie z oczekiwaniami.

Problem polega na wywołaniu metody VerifyAuthentication w klasie OAuthWebSecurity (Microsoft.Web.WebPages.OAuth)

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

Zawsze powraca wynik uwierzytelnieniaIsSuccessful = false iProvider = ""

Przejrzałem kod w tym celu, a klasa OAuthWebSecurity próbuje uzyskać nazwę dostawcy

Request.QueryString["__provider__"]

ale Google nie wysyła tych informacji z powrotem do kwerendy. Inny dostawca, który zaimplementowałem (LinkedIn), wysyła nazwę dostawcy i wszystko działa dobrze.

Nie jestem pewien, co mogę zrobić od tego momentu, oprócz porzucenia klas Microsoft.Web.WebPages.OAuth i po prostu używać DotNetOpenAuth bez nich, ale miałem nadzieję, że ktoś może mieć inne rozwiązanie, które mogę wypróbować ...

Szukałem obszernie, ale nie mogę znaleźć niczego, by pomóc ... Naprawdę trudno było znaleźć przykłady ludzi robiących to samo, co naprawdę mnie zaskoczyło.

Każda pomoc bardzo ceniona!

questionAnswers(2)

yourAnswerToTheQuestion