OAuth 2 Owin无法正常工作StackExchange.Redis SessionState

时间:2014-07-13 17:11:26

标签: asp.net-mvc oauth-2.0 stackexchange.redis

从一个全新的MVC5项目开始,我连接了外部OAuth登录Google,Facebook Twitter,微软等。所有这些都按预期工作。

然后我添加了新的ASP.NET Session State Provider for Redis Preview Release并使其正常运行。呀!

我很快发现尝试使用任何OAuth提供程序登录都无法正常运行。 Google& Facebook登录按钮调用Accont控制器上的ExternalLoginCallback(字符串returnUrl)但无处可去。登录页面只是刷新。

LinkedIn,Twitter和Microsoft按钮都将用户引导至这些登录页面,但当返回到我的应用程序时,它们将返回登录页面,并且没有用户被添加到系统中。

在web.config中注释掉自定义sessionState条目会使外部登录恢复正常。

考虑到这两个框架对我来说都是黑盒子,我不知道如何将这两个框架放在一起玩。

1 个答案:

答案 0 :(得分: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();
    }

会话和外部登录提供商似乎存在问题