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); }
public SelfHandlerTest() { claimsPrincipalMock = new Mock <ClaimsPrincipal>(); requirement = new SelfRequirement(); handler = new SelfHandler(); }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SelfRequirement requirement) { Invoked = true; if (_fail) { context.Fail(); } else { context.Succeed(requirement); } return(Task.FromResult(0)); }