Azure Active Directory回复URL重定向到root

时间:2017-08-22 10:05:11

标签: asp.net azure openid azure-active-directory

我正在尝试使用Azure AD实现身份验证。在应用程序设置中,我将答复URL设置为https://example.com/myapp/login.aspx。 当我登录时,它会将我重定向到https://example.com而不是指定的网址https://example.com/myapp/login.aspx

如何确保重定向到正确的网址?以下是Startup的代码。

    public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());

    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            ClientId = ConfigurationManager.AppSettings["owin:ClientId"].ToString(),
            Authority = "https://login.microsoftonline.com/yz5036e3-2951-4c11-af4d-da019fa6a57d",
            RedirectUri = ConfigurationManager.AppSettings["RedirectUri"].ToString()
        });
}

2 个答案:

答案 0 :(得分:5)

如何触发登录流程?如果您正在跟踪示例并通过调用https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect/blob/master/WebApp-OpenIDConnect-DotNet/Controllers/AccountController.cs中显示的Challenge来启动登录,您可能需要确保AuthenticationProperties中的RedirectUri指向您最终的URL(如在auth中一样)想要落在。 我知道,它令人难以置信的混乱 - OIDC选项中的RedirectUri属性指向您要在auth协议中使用的重定向,您要在其上接收身份验证令牌的重定向 - 以及AuthenticationProperties中的重定向是在您与身份提供商的交换成功结束后,您希望重定向到的本地URL。由于历史原因,这些名称具有相同的名称。

答案 1 :(得分:1)

在我的案例中,网站位于虚拟目录下(在应用程序中转换)。对于登录URL,例如http://example.com/myapp/login.aspx,它正在将用户重定向到http://example.com。如果我将RedirectUri设置为myapp / AfterLogin.aspx,那就可以了。

HttpContext.Current.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties { RedirectUri = "myapp/AfterLogin.aspx", },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);