Blazor Server 是一个基于 ASP.NET Core 的 Web 应用程序框架,因此它可以使用 ASP.NET Core 的身份验证和授权系统来保护页面。如果您需要控制谁可以访问您的 Blazor Server 应用程序中的页面,可以使用 ASP.NET Core 的授权特性来限制访问。
下面是一个简单的示例,演示如何定义一个需要授权才能访问的页面:
public static class Policies
{
public const string RequireAdministratorRole = "RequireAdministratorRole";
}
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = new PathString("/login");
options.LogoutPath = new PathString("/logout");
options.AccessDeniedPath = new PathString("/access-denied");
});
services.AddAuthorization(options =>
{
options.AddPolicy(Policies.RequireAdministratorRole, policy => policy.RequireRole("Admin"));
});
}
[Authorize(Policy = Policies.RequireAdministratorRole)]
public class AdminPage : ComponentBase
{
// ...
}
完成这些步骤后,只有带有 Admin 角色的用户才能访问 AdminPage。否则,用户将被重定向到指定的 LoginPath 或 AccessDeniedPath 页面。