我正在与Blazor一起玩,并创建了一个由服务器托管的Web应用程序。我必须在页面顶部放置一个@@ tribute [Authorize]这样的授权行,以确保用户已登录。
似乎我必须将此行单独添加到每个页面。是否有全局设置来保护应用程序中的所有页面,当然除了登录页面。
谢谢!
答案 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) 的属性来自定义身份验证和授权。