2014-02-08 9 views
36

Ich habe OAuth Authentifizierung mit der Owin Middleware basierend auf dem Standard-Projekt eingerichtet, die beim Starten eines neuen Web-Projekts mit "Einzelkonten" -Authentifizierung erstellt wird.Asp.Net MVC 5 Owin Twitter Auth werfen 401 Exception

Ich habe es ein bisschen gezwickt, aber Facebook und Google arbeiten groß, aber wenn ich auf die Schaltfläche „twittern“, um die Herausforderung zu erteilen, es ist eine 500 http Ausnahme mit der Fehlermeldung zu werfen:

Der Antwortstatuscode zeigt keinen Erfolg an: 401 (Nicht autorisiert).

Dies kommt nur mit Twitter. Hier ist meine Auth config:

// Just a configuration section that reads from the web.config 
var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration"); 
app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration)); 
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 

app.UseTwitterAuthentication(
    consumerKey: "XXX", 
    consumerSecret: "XXX" 
); 

app.UseFacebookAuthentication(
    appId: "XXX", 
    appSecret: "XXX" 
); 

app.UseGoogleAuthentication(); 

Es ist definitiv ein 500-Fehler, kein 401-Fehler, da es angibt, und ich habe bestätigt es nie macht es die Original-Beitrag Herausforderung zu Twitter weitergegeben. Der Stack-Trace erscheint Twitter zu zeigen, ist kein Erfolg Code aus dem ObtainRequestToken Aufruf Rückkehr:

Stack Trace

Irgendwelche Ideen?

Antwort

65

Sie müssen in die Twitter Dev App gehen und eine Website-Adresse hinzufügen. Ich weiß, es scheint albern, aber das wird dein Problem lösen.

  1. https://apps.twitter.com/
  2. Gehen Sie auf die Registerkarte Einstellungen
  3. eine Rückruf-URL zu einer Website ein. Auch wenn es nicht real ist.

Dies sollte Ihr Problem lösen.

+0

Wow. Brilliant - danke! – MikeAtCodeSmart

+7

Ein optionales Feld, das nicht optional ist. Haha! – JoshYates1980

+4

FYI Es dauert ungefähr 5 Minuten, nachdem Sie die URL festgelegt haben. Ich verschwendete einen Tag darauf. –

2

Ich habe mein Problem so gelöst, wie Patrick es vor 1 Jahr beschrieben hat. Heute bin ich wieder auf dasselbe Problem gestoßen, aber dieses Mal habe ich festgestellt, dass das Problem durch die Einstellung von Datum und Uhrzeit in meinem Computer verursacht wurde. Da das Datum/die Uhrzeit in diesem Computer normalerweise nicht synchron ist, musste ich zu "Datums- und Uhrzeiteinstellungen ändern" -> "Internetzeit" wechseln und die Internet-Synchronisierung aktivieren.