4

从一个全新的 MVC5 项目开始,我将 External OAuth Login 与 Google、Facebook Twitter、Microsoft 等连接起来。一切都按预期工作。

然后,我为 Redis 预览版添加了新的ASP.NET 会话状态提供程序并让它工作。是的!

我很快注意到尝试使用任何 OAuth 提供程序登录不再正常工作。Google 和 Facebook 登录按钮调用 Accont 控制器上的 ExternalLoginCallback(string returnUrl) 但无处可去。登录页面只是刷新。

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

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

考虑到这两个框架对我来说都是黑匣子,我不确定如何让这两个框架一起发挥作用。

4

1 回答 1

3

这帮助我解决了确切的问题。

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();
    }

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

于 2014-08-21T17:14:51.107 回答