Blazor-当用户已验证时防止进入登录路由。
创始人
2024-12-20 21:30:49
0

在Blazor中,我们可以使用Guard进行路由保护,防止已验证用户访问需要身份验证的页面。我们需要在启动文件中配置Guard,然后在需要保护的路由中使用AuthorizeRouteView组件。

以下是实现此目的的代码示例:

  1. 在Startup.cs中配置Guard:
public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthorizationCore();
    services.AddScoped();
    services.AddScoped();
    services.AddSingleton();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapBlazorHub();
        endpoints.MapFallbackToPage("/_Host");
    });
}

在此示例中,我们在服务中添加了AuthorizationCore和CustomAuthorizationPolicyProvider,它们将用于自定义AuthorizationPolicy。接下来,我们在各自的Authorization Handler中添加了HasPermissionHandler和PermissionAuthorizationHandler。

  1. 创建一个CustomAuthorizationPolicyProvider类:
public class CustomAuthorizationPolicyProvider : IAuthorizationPolicyProvider
{
    private readonly AuthorizationOptions _options;

    public CustomAuthorizationPolicyProvider(IOptions options)
    {
        _options = options.Value;
    }

    public Task GetPolicyAsync(string policyName)
    {
        foreach (var policy in _options.Policies)
        {
            if (policy.Name == policyName)
            {
                return Task.FromResult(policy);
            }
        }

        return Task.FromResult(null);
    }

    public Task GetDefaultPolicyAsync()
    {
        return Task.FromResult(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build());
    }
}

此类指定默认策略为Authenticated User。

  1. 添加HasPermissionHandler:
public class HasPermissionHandler : AuthorizationHandler
{
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, HasPermissionRequirement requirement)
    {
        var permissionClaim = context

相关内容

热门资讯

黑科技有挂(wpk最新黑科技)... 黑科技有挂(wpk最新黑科技)wpk有外挂吗(wpK)一贯是真的有挂(有挂神器)-哔哩哔哩1、wpk...
黑科技好友房(wpk ai辅助... 黑科技好友房(wpk ai辅助)wpk透视辅助工具的使用教程(wPk)都是真的是有挂(有挂教学)-哔...
黑科技讲解(wpk最新黑科技)... 黑科技讲解(wpk最新黑科技)wpk有辅助挂吗(wpK)一直是真的有挂(证实有挂)-哔哩哔哩1、玩家...
黑科技总结(wpk最新黑科技)... 黑科技总结(wpk最新黑科技)wpkai辅助神器(wpK)一贯有挂(有挂助手)-哔哩哔哩1、wpk最...
黑科技新版(wpk ai辅助)... 黑科技新版(wpk ai辅助)wpk德州职业代打(WPk)本来真的是有挂(果真有挂)-哔哩哔哩;1、...
黑科技辅助(wpk ai辅助)... 黑科技辅助(wpk ai辅助)wpk有辅助挂吗(wpK)总是有挂(真的有挂)-哔哩哔哩1、玩家可以在...
黑科技安装(wpk最新黑科技)... 黑科技安装(wpk最新黑科技)wpk德州透视辅助(wpK)好像真的有挂(有挂教学)-哔哩哔哩wpk德...
黑科技ai(wpk ai辅助)... 黑科技ai(wpk ai辅助)wpk德州(Wpk)一直是有挂(有挂方法)-哔哩哔哩1、wpk ai辅...
黑科技ai(wpk ai辅助)... 黑科技ai(wpk ai辅助)wpk辅助器是真的假的(Wpk)真是是真的有挂(有挂猫腻)-哔哩哔哩1...
黑科技辅助(wpk最新黑科技)... 黑科技辅助(wpk最新黑科技)wpk有外挂吗(wpK)果然有挂(有挂教学)-哔哩哔哩;1、每一步都需...