OAuth2 und DotNetOpenAuth - Implementierung eines benutzerdefinierten Google-Clients

Ich habe ein Problem beim Implementieren von benutzerdefiniertem OAuth2Client für Google mit DotNetOpenAuth und MVC4.

Ich bin an dem Punkt angelangt, an dem ich die Autorisierungsanfrage erfolgreich an den Google-Endpunkt stellen kannhttps://accounts.google.com/o/oauth2/auth

und Google fragt, ob der Nutzer meiner Anwendung Zugriff auf sein Konto gewähren möchte. Alles gut soweit. Wenn der Nutzer auf "OK" klickt, ruft Google meine Rückruf-URL erwartungsgemäß auf.

Das Problem ist, wenn ich die VerifyAuthentication-Methode für die OAuthWebSecurity-Klasse (Microsoft.Web.WebPages.OAuth) aufrufe.

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

Es wird immer ein AuthenticationResult mit zurückgegebenIsSuccessful = false undProvider = ""

Ich habe den Code dafür untersucht und die OAuthWebSecurity-Klasse versucht, den Anbieternamen von zu erhalten

Request.QueryString["__provider__"]

Google sendet diese Informationen jedoch nicht im Querystring zurück. Der andere Anbieter, den ich implementiert habe (LinkedIn), sendet den Anbieternamen zurück und alles funktioniert einwandfrei.

Ich bin mir nicht sicher, was ich jetzt tun kann, abgesehen davon, dass ich die Microsoft.Web.WebPages.OAuth-Klassen aufgeben und DotNetOpenAuth nur ohne sie verwenden kann, aber ich hatte gehofft, jemand könnte eine andere Lösung finden, die ich ausprobieren kann ...

Ich habe ausgiebig gesucht, aber anscheinend nichts gefunden, was mir helfen könnte ... Ich fand es wirklich schwierig, nur Beispiele von Leuten zu finden, die dasselbe tun, was mich wirklich überrascht hat.

Jede Hilfe sehr geschätzt!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage