【问题标题】:OAuth 2 Owin not working StackExchange.Redis SessionStateOAuth 2 Owin 不工作 StackExchange.Redis SessionState
【发布时间】:2014-07-13 17:11:25
【问题描述】:

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

然后我添加了新的ASP.NET Session State Provider for Redis Preview Release 并让它工作。对!

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

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

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

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

【问题讨论】:

  • 对于编写会话提供程序的 MS 人员来说,这听起来像是一个问题; SE.Redis 在这里所做的就是 GIGO,它非常健壮且简单

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


【解决方案1】:

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

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

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

【讨论】:

  • 这是在 Microsoft 的某个地方作为错误提交的吗?我不希望我的 sessionstate 充斥着无用的值。
猜你喜欢
  • 1970-01-01
  • 2014-11-28
  • 2015-08-18
  • 2017-04-20
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2018-10-16
  • 2014-04-19
相关资源
最近更新 更多