public void ConfigureServices(IServiceCollection services)
    {
        services
        .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie()
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters = BearerAuth.CreateTokenValidationParameters();
        });

        services.AddAuthorization(options =>
        {
            options.AddPolicy("RequireClaimA", policy => policy.RequireClaim("ClaimA"));
            options.AddPolicy("RequireClaimB", policy => policy.RequireClaim("ClaimB"));
        });

        services.AddMvc(o =>
        {
            o.Filters.Add(new AuthorizeFilter("RequireClaimA"));
        })
        .AddRazorPagesOptions(options =>
        {
            options.Conventions.AllowAnonymousToPage("/AllowAnonymousPageViaConvention");
            options.Conventions.AuthorizePage("/AuthorizePageViaConvention", "RequireClaimB");
        });
    }
Esempio n. 2
0
    public IActionResult LoginBearerClaimA()
    {
        var identity = new ClaimsIdentity(new[] { new Claim("ClaimA", "Value") });

        return(Content(BearerAuth.GetTokenText(identity.Claims)));
    }