【问题标题】:Asp.Netcore Web app with Azure AD b2c redirect url带有 Azure AD b2c 重定向 URL 的 Asp.Net Core Web 应用
【发布时间】:2021-02-12 00:11:24
【问题描述】:

Azure AD B2C 已设置为在 Asp.netCore Web 应用程序中进行身份验证。身份验证过程完美运行。身份验证后,需要将用户重定向回发起登录的页面。

电流发生的方式:

这是按钮<a class="btn btn-primary" asp-area="AzureADB2C" asp-controller="Account" asp-action="SignIn">Sign in</a>

PublicPage(有一个登录/注册按钮)在用户需要进行身份验证才能与之交互的部分页面上 -> 单击登录按钮 -> 重定向到 Azure AD B2C -> 用户返回到 IndexPage。

需要的方式:

PublicPage(有一个登录/注册按钮)在用户需要进行身份验证才能与之交互的部分页面上 -> 单击登录按钮 -> 重定向到 Azure AD B2C -> 用户返回到 PublicPage。

编辑 @Jit_MSFT 感谢您的建议,但我不确定在哪里添加这些配置。

services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
                   .AddAzureADB2C(options => { 
                       Configuration.Bind("AzureAdB2C", options);
                   });

上面的设置没有这些选项。还有几个页面需要具备这种动态能力。

context.Properties.RedirectUri = "/xxxx;

这似乎我会被锁定在 returnUrl 上的一页

【问题讨论】:

  • 谢谢@ChampChris。您能否使用 authentication.navigateToLoginRequestUrl = false;和 context.Properties.RedirectUri = "/xxxx; 在你的 startup.cs 文件中,让我们知道它是否不起作用
  • @Jit_MSFT 这种方法的问题在于,重定向 uri 是动态的。还是说 /xxxx 字面意思应该放在启动中?

标签: asp.net-core azure-ad-b2c


【解决方案1】:

在您的AccountController 中,请将SignIn 方法定义为:

public async Task SignIn()
{
    var redirectUri = ... // your redirect URI
    await HttpContext.ChallengeAsync(AzureADB2CDefaults.AuthenticationScheme,
                               new AuthenticationProperties { RedirectUri = redirectUri });
}

您也可以在this answer查看其他详细信息和选项

此外,请检查在 Azure AD 中,您是否必须使用匹配的重定向 URI 注册您的客户端应用程序(更多详细信息 here):)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2019-05-30
    • 2018-10-10
    相关资源
    最近更新 更多