OAuth2 и DotNetOpenAuth - реализация пользовательского клиента Google

У меня проблема с реализацией пользовательского OAuth2Client для Google с использованием DotNetOpenAuth и MVC4.

Я дошел до того, что смог успешно сделать запрос на авторизацию к конечной точке Googlehttps://accounts.google.com/o/oauth2/auth

и Google спрашивает, разрешит ли пользователь моему приложению доступ к своей учетной записи. Пока все хорошо. Когда пользователь нажимает «ОК», Google затем вызывает URL моего обратного вызова, как и ожидалось.

Проблема заключается в том, что я вызываю метод VerifyAuthentication для класса OAuthWebSecurity (Microsoft.Web.WebPages.OAuth).

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

Он всегда возвращает AuthenticationResult сIsSuccessful = false а такжеProvider = ""

Я рассмотрел код для этого, и класс OAuthWebSecurity пытается получить имя поставщика от

Request.QueryString["__provider__"]

но Google не отправляет эту информацию обратно в строку запроса. Другой провайдер, которого я реализовал (LinkedIn), отправляет имя провайдера обратно, и все работает просто отлично.

Я не уверен, что я могу сделать с этого момента, кроме как отказаться от классов Microsoft.Web.WebPages.OAuth и просто использовать DotNetOpenAuth без них, но я надеялся, что у кого-то может быть другое решение, которое я могу попробовать ...

Я много искал, но не могу найти ничего, что могло бы помочь ... Мне было очень трудно даже найти примеры людей, делающих то же самое, что меня очень удивило.

Любая помощь высоко ценится!

Ответы на вопрос(2)

Ваш ответ на вопрос