需要所有Blazor页面上的授权

时间:2020-03-14 22:26:41

标签: blazor blazor-server-side asp.net-blazor

我正在与Blazor一起玩,并创建了一个由服务器托管的Web应用程序。我必须在页面顶部放置一个@@ tribute [Authorize]这样的授权行,以确保用户已登录。

似乎我必须将此行单独添加到每个页面。是否有全局设置来保护应用程序中的所有页面,当然除了登录页面。

谢谢!

3 个答案:

答案 0 :(得分:9)

尝试将其添加到_Imports.razor。我认为应该可以...

在登录页面中添加@attribute [AllowAnonymous]

从未做过。只是猜测而已。

答案 1 :(得分:0)

您可以通过在Blazor应用程序中添加中间件来克服这一问题。

您可以在此处阅读如何实现此方法:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/write?view=aspnetcore-3.1

答案 2 :(得分:0)

您可以通过添加授权回退策略来做到这一点:

services.AddRazorPages();

services.AddAuthorization(options =>
{
    options.FallbackPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
});
<块引用>

回退身份验证策略要求对所有用户进行身份验证,但具有身份验证属性的 Razor 页面、控制器或操作方法除外。

这意味着您可以使用示例 @attribute [Authorize] (attributes) 的属性来自定义身份验证和授权。