services.AddAuthorizationCore();
services.AddScoped();
services.AddScoped();
其中,OktaAuthenticationStateProvider 是自定义的身份验证状态提供者,用于从 OKTA 中获取身份验证状态,而 AuthorizationService 是用于处理 Blazor 授权策略的自定义服务。 3. 接下来,我们需要配置 Blazor 应用程序以使用角色和授权策略来限制对 SQL Server 的访问。可以在应用程序的 Startup.cs 文件中添加以下代码以实现这一步骤:
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders()
.AddRoles();
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/account/login";
options.Events.OnRedirectToLogin = context =>
{
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
return Task.CompletedTask;
};
});
services.AddAuthorization(options =>
{
options.AddPolicy("AdminOnly", policy => policy.RequireRole("Admin"));
options.AddPolicy("UserOnly", policy => policy.RequireRole("User"));
});
services.AddTransient();
services.AddScoped();
services