设置登录后重定向URL



我已将Blazor服务器与Azure B2C Cookie Auth连接。

services.AddAuthentication(AzureADB2CDefaults.CookieScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
services.Configure<CookieAuthenticationOptions>(
AzureADB2CDefaults.CookieScheme, options =>
{
options.Cookie.Name = "MyCookieName";
});

我正在映射控制器,所以我有要命中的控制器端点:

app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});

在我的Blazor服务器_Host中,我只是使用内置的Authorizeattirbute:

@attribute [Microsoft.AspNetCore.Authorization.Authorize]

加载时,如果用户未经授权,它将重定向到B2C登录,而不会出现问题。然后我可以登录,它会引导我返回应用程序。

然而,我不知道登录后如何重定向到特定的控制器/操作端点,比如:/api/auth/mynewuser。然后,该操作会进行一些验证并重定向回"/",允许用户继续使用Blazor应用程序。

考虑到我开箱即用的设置。。。如何做到这一点?

编辑

代码:

https://github.com/aherrick/BlazorServerB2C

目标是在每次登录/注册后达到此终点:

https://github.com/aherrick/BlazorServerB2C/blob/master/BlazorServerB2C/Controllers/AuthorizeController.cs

当您使用Azure AD B2C登录时,B2C服务会向"redirect_uri"发送一个令牌。您可以动态提及到特定控制器/操作端点的身份验证路由中使用的重定向URL。这有助于应用程序在身份验证成功时重定向到控制器。

此外,通过实现AuthorizeView组件或[授权]属性,可以轻松处理用户是否登录。

我查看了您的代码Authorizationcontroller和正在构建的newuser操作。如果你可以在剃须刀页面上触发,你可以使用以下内容:

@page "/YourPageName"
@inject NavigationManager NavigationManager
<h1>xxx</h1>
.
.
.

@code {
void MethodToTriggerUrl()
{
NavigationManager.NavigateTo("PageToRedirect");
}
}

此外,请参阅MS文档。

相关内容

  • 没有找到相关文章

最新更新