asp.net Azure Active Directory回复URL重定向到根目录

ovfsdjhp  于 2023-10-21  发布在  .NET
关注(0)|答案(3)|浏览(161)

我正在尝试使用Azure AD实现身份验证。在应用程序设置中,我将回复URL设置为https://example.com/myapp/login.aspx。当我登录时,它将我重定向到https://example.com,而不是指定的URL https://example.com/myapp/login.aspx
如何确保它重定向到正确的URL?下面是启动的代码。

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

v7pvogib1#

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

km0tfn4u

km0tfn4u2#

在我的情况下,网站是在虚拟目录(转换为应用程序)。对于登录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);
rxztt3cl

rxztt3cl3#

抱歉,在redirectUrl添加以下内容后延迟回复-
navigateToLoginRequestUrl= false
希望这将有助于

相关问题