OWIN open id - Authentication.SignOut()无法正常工作

时间:2015-12-16 15:49:47

标签: azure asp.net-mvc-5 single-sign-on openid owin

背景

我是天蓝色的新手,这是我的第一篇文章,所以请记住我。

目前,我正在为我的公司开展Azure单点登录。

按照说明Web App Sign In & Sign Out with Azure AD,我使用VS2015使用OWIN OpenId身份验证创建/复制了MVC 5项目。

问题

登录运行良好,但退出不是:

  1. 使用用户A登录并退出。没问题。

  2. 然后尝试使用其他用户B登录:点击“使用其他帐户”#39;在login.microsoftonline.com并输入用户B的电子邮件地址,但不允许我输入密码,它将我重定向到我的主页,显示用户A已登录!

  3. 仅当我关闭并重新打开浏览器(同时使用Chrome和FF)时,才允许我输入用户B的密码并以用户B身份登录。

    代码

    public class AccountController : Controller
    {
        public void SignIn()
        {
            // Send an OpenID Connect sign-in request.
            if (!Request.IsAuthenticated)
            {
                HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties {RedirectUri = "/"},
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
        }
    
        public void SignOut()
        {
            string callbackUrl = Url.Action("SignOutCallback", "Account", routeValues: null,
                protocol: Request.Url.Scheme);
    
            Request.GetOwinContext().Authentication.SignOut(
                new AuthenticationProperties {RedirectUri = callbackUrl},
                OpenIdConnectAuthenticationDefaults.AuthenticationType,
                CookieAuthenticationDefaults.AuthenticationType);
        }
    
        public ActionResult SignOutCallback()
        {
            if (Request.IsAuthenticated)
            {
                // Redirect to home page if the user is authenticated.
                return RedirectToAction("Index", "Home");
            }
    
            return View();
        }
    }
    

    我做了很多搜索,但仍然没有运气。

    以下是与我完全相同的问题: OWIN - Authentication.SignOut() doesn't remove cookies

    @ user3613871所说的对我有很多感官:

      

    Cookie是AppServiceAuthSession Cookie - 不再是AspNet   饼干。因此,注销不再有效。

    但我仍然无法找到解决方法。

    我可以对azure或我的代码中的设置做些什么来清理"天蓝色的饼干"?

    欢迎任何想法,并提前感谢。

0 个答案:

没有答案