Esempio n. 1
0
    public async Task PassThroughShouldInvokeAllHandlersBasedOnSetting(bool invokeAllHandlers)
    {
        // Arrange
        var willFail             = new SelfRequirement(fail: true);
        var afterHandler         = new SelfRequirement(fail: false);
        var authorizationService = BuildAuthorizationService(services =>
        {
            services.AddAuthorization(options =>
            {
                options.InvokeHandlersAfterFailure = invokeAllHandlers;
                options.AddPolicy("Self", policy => policy.Requirements.Add(willFail));
            });
            services.AddSingleton <IAuthorizationHandler>(afterHandler);
        });

        // Act
        var allowed = await authorizationService.AuthorizeAsync(new ClaimsPrincipal(), "Self");

        // Assert
        Assert.False(allowed.Succeeded);
        Assert.True(willFail.Invoked);
        Assert.Equal(invokeAllHandlers, afterHandler.Invoked);
    }
Esempio n. 2
0
 public SelfHandlerTest()
 {
     claimsPrincipalMock = new Mock <ClaimsPrincipal>();
     requirement         = new SelfRequirement();
     handler             = new SelfHandler();
 }
Esempio n. 3
0
 protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SelfRequirement requirement)
 {
     Invoked = true;
     if (_fail)
     {
         context.Fail();
     }
     else
     {
         context.Succeed(requirement);
     }
     return(Task.FromResult(0));
 }