2014-07-13 2 views
4

새로운 MVC5 프로젝트부터 Google, Facebook Twitter, Microsoft 등으로 외부 OAuth 로그인을 연결했습니다. 모두 예상대로 작동합니다.OAuth 2 Owin 작동하지 않음 StackExchange.Redis SessionState

그런 다음 새로운 ASP.NET Session State Provider for Redis Preview Release을 추가하고 작동 시켰습니다. 네!

곧 OAuth 공급자 중 하나를 사용하여 로그인하려고 시도하는 것이 더 이상 올바르게 작동하지 않는다는 것을 알게되었습니다. Google & Facebook 로그인 버튼은 Accont 컨트롤러에서 ExternalLoginCallback (string returnUrl)을 호출하지만 어디에도 없습니다. 로그인 페이지가 새로 고쳐집니다.

LinkedIn, Twitter 및 Microsoft 단추는 모두 사용자를 해당 로그인 페이지로 안내하지만 응용 프로그램으로 돌아 오면 로그인 페이지로 돌아가고 사용자는 시스템에 추가되지 않습니다.

내 web.config에서 사용자 정의 sessionState 항목을 주석 처리하면 외부 로그인이 정상으로 돌아갑니다.

두 프레임 워크가 모두 나에게 블랙 박스 인 것을 고려해 볼 때,이 두 프레임을 함께 플레이하려면 어떻게해야하는지 잘 모릅니다.

+0

이 세션 제공자를 쓴 MS의 사람들에 대한 질문 같은 소리에 문제가 될 것 같습니다; 모든 SE.Redis는 GIGO입니다. 매우 견고하고 간단합니다. –

답변

2

정확한 문제와 관련하여 도움이되었습니다.

http://www.nsilverbullet.net/2014/06/24/tough-mvc-5-owin-external-authentication-issue/

는 기본적으로 : 세션 상태 있어야한다? AccountController에서 수정 :

[AllowAnonymous] 
    public ActionResult Login(string returnUrl) 
    { 
     //Ensure Session has at least one value 
     Session["EnableExternalAuth"] = true; // <--------- This helped 

     ViewBag.ReturnUrl = returnUrl; 
     return View(); 
    } 

이 세션 및 외부 로그인 제공

+0

이 파일은 Microsoft의 어딘가에있는 버그입니까? 나는 쓸모없는 가치들로 가득 차있는 세션 상태를 원하지 않는다. –

관련 문제