ADAL Azure Active Directory SignOut重定向URL不再起作用

时间:2016-11-09 16:57:26

标签: c# asp.net azure azure-active-directory adal

5周前使用azure AD为我的网络应用程序实施了身份验证,但是有一些初始问题,如果用户从另一个目录(在本例中是我的大学)缓存了凭据,则登录将无法正常工作。解决方案是实现以下代码:

public void SignIn(bool? signedOut)
    {
        // Send an OpenID Connect sign-in request.
        if (!Request.IsAuthenticated)
        {
            // If the user is currently logged into another directory, log them out then attempt to
            // reauthenticate under this directory
            if (signedOut == null || signedOut == false)
            {
                HttpContext.GetOwinContext().Authentication.SignOut(
                    new AuthenticationProperties { RedirectUri = Url.Action("SignIn", "Account", routeValues: new { signedOut = true }, protocol: Request.Url.Scheme) },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
            }
            else
            {
                HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = Url.Action("Dashboard", "User", routeValues: null, protocol: Request.Url.Scheme) },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
        }
    }

这实际上是强制用户注销然后立即重新登录,这个过程实际上只需要大约1.5秒,因此它似乎是一个擦除任何缓存凭据的简洁解决方案。这已经过去5周了,但突然停止了我的测试和实时系统的工作。注销将无故障地工作,但重定向回到注册网址不会启动,因此将用户挂在屏幕上的附加screenshot中。您可以查看指定的网站here,单击“登录”按钮时会出现问题。

在仔细检查源代码控制之后,我可以确认我最近对代码所做的任何更改都不会导致问题,几乎看起来好像微软处理它们的方式发生了变化。

架构:在.NET 4.5上运行的Azure Web App

提前致谢,如果我能提供更多有用的信息,请随时告诉我,

谢谢, 克雷格

1 个答案:

答案 0 :(得分:0)

我不确定您在本地面临的问题是什么,但是当我发布到Azure时遇到问题,因为它覆盖了我的ida:受众设置。使用Kudu查看你的web.config,看看它是否仍然是你想要的。

Azure AD + ADAL.js + App Service - Only one claim on ClaimsPrincipal.Current.Claims