2013-04-21 15 views
5

Używam OAuthWebSecurity do logowania się na Facebooku i działa on na localhost. Jednak po wdrożeniu na serwer Live otrzymuję następujący komunikat o błędzie:logowanie do facebook'a za pomocą oauth kończy się niepowodzeniem na serwerze na żywo

Serwer zdalny zwrócił błąd: (400) Złe żądanie.

  • Sprawdziłem szczegóły domeny są poprawne na Facebooku.
  • Tryb piaskownicy jest wyłączony.
  • Mam wyłączoną zaporę systemu Windows - nadal otrzymuję ten sam błąd.
  • Odpowiedzi z Facebooka mają identyczny format zarówno w środowiskach na żywo, jak i lokalnych.
  • Data i godzina serwera na żywo jest prawidłowa.

Testowałem lokalnie również zmieniając plik hosta na domenę na żywo - nadal działa lokalnie.

Oto ślad stosu:

[WebException: The remote server returned an error: (400) Bad Request.] 
System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) +3291120 
System.Net.WebClient.DownloadString(Uri address) +207 
DotNetOpenAuth.AspNet.Clients.FacebookClient.QueryAccessToken(Uri returnUrl, String authorizationCode) +293 
DotNetOpenAuth.AspNet.Clients.OAuth2Client.VerifyAuthentication(HttpContextBase context, Uri returnPageUrl) +167 
DotNetOpenAuth.AspNet.OpenAuthSecurityManager.VerifyAuthentication(String returnUrl) +502 
Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.VerifyAuthenticationCore(HttpContextBase context, String returnUrl) +231 

Wszelkie sugestie?

+0

Proszę sprawdzić facebook może być dostępna na serwerze lub nie. jeśli nie jest dostępny, spróbuj otworzyć Facebook za pomocą przeglądarki – Amit

+0

RDC do serwera, otworzyła przeglądarkę i był w stanie załadować i zalogować się na facebook bez problemu. – Andrew

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Zdarza mi się to po raz pierwszy. – shannon

Odpowiedz

1

Było otwarte wady związane z tym: https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/203

jednak, że biblioteka jest najwyraźniej nie jest już utrzymywana: https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/317#issuecomment-29580565

... chociaż wciąż jest mowa w wielu dokumentach Microsoft. Zbadanie tego związanego z inną wadą.

Zobacz także: The remote server returned an error: (400) Bad Request Microsoft.AspNet.Membership.OpenAuth

+1

Dla nieoświeconego zewnętrznego obserwatora, zauważając, że dokładnie ta sama wada pojawiła się w nowym produkcie Microsoft z podobną funkcją, jednocześnie Microsoft porzucił stary projekt open source, wydaje się podejrzanie podobny do tego, który Microsoft włączył bezpośrednio do zastrzeżonego zamkniętego systemu. źródło zysku dla produktu. – shannon

+0

Jakie podejście podjąłeś, aby go rozwiązać? – acarlon

1

To jest stary, ale trafienie 400 błędu z Facebook Zaloguj się używając dotnetopenoath jak to jest zintegrowany MVC 4 i poszedł na dzikie gęsi pościg myśląc, że to nie działa, ponieważ to już nie był wspierany, kiedy wszystko, co potrzebne do zrobienia było złapać i zalogować wyjątek, który wskazał mi na problem z moim konkretnym przypadku (app tajny ustawień dowód):

catch (WebException exception) 
{ 
    using (WebResponse response = exception.Response) 
    { 
     HttpWebResponse httpResponse = (HttpWebResponse) response; 
     m_log.Debug("Error code: " + httpResponse.StatusCode); 
     using (Stream data = response.GetResponseStream()) 
     { 
      if (data != null) 
      { 
       using (var reader = new StreamReader(data)) 
       { 
        string text = reader.ReadToEnd(); 
        m_log.Debug(text); 
       } 
      } 
     } 
    } 
} 
Powiązane problemy