我已将Blazor服务器与Azure B2C Cookie身份验证挂钩
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
中,我只是使用内置的Authorize
服装:
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
在加载时,如果未授权用户,它将重定向到B2C登录,而不会出现问题。然后,我可以登录,它将我带回到应用程序。
但是,我不知道的是登录后如何重定向到specific控制器/操作端点,例如:/api/auth/mynewuser
然后该操作将进行一些验证并重定向回“ /”,从而允许用户继续使用Blazor应用程序。
几乎给了我开箱即用的设置...如何实现这一目标?
编辑
代码:
https://github.com/aherrick/BlazorServerB2C
目标是在每次登录/注册后击中该端点:
[使用Azure AD B2C登录时,B2C服务将令牌发送到“ redirect_uri”。您可以将身份验证route中使用的重定向URL动态提及到特定的控制器/操作终结点。身份验证成功后,这可以帮助应用重定向到控制器。
此外,通过实现AuthorizeView component或[Authorize] attribute,您可以轻松处理用户是否已登录。