public void RedirectsToHomepageOnlyWith2FAMarker(bool shouldEnable2FA) { var tempData = new TempDataDictionary(); if (shouldEnable2FA) { tempData.Add(GalleryConstants.AskUserToEnable2FA, true); } var context = BuildAuthorizationContext( BuildClaimsIdentity( AuthenticationTypes.External, authenticated: true, hasDiscontinuedLoginClaim: false).Object).Object; context.Controller.TempData = tempData; var attribute = new UIAuthorizeAttribute(); // Act attribute.OnAuthorization(context); // Assert var redirectResult = context.Result as RedirectToRouteResult; if (shouldEnable2FA) { Assert.NotNull(redirectResult); Assert.Contains(new KeyValuePair <string, object>("controller", "Pages"), redirectResult.RouteValues); Assert.Contains(new KeyValuePair <string, object>("action", "Home"), redirectResult.RouteValues); } else { Assert.Null(redirectResult); } }
public void FailsForUnauthenticatedUser(bool allowsDiscontinuedLogin, ClaimsIdentity identity) { var context = BuildAuthorizationContext(identity).Object; var attribute = new UIAuthorizeAttribute(allowsDiscontinuedLogin); // Act attribute.OnAuthorization(context); // Assert Assert.IsType <HttpUnauthorizedResult>(context.Result); }
public void SucceedsForAuthenticatedUserWithoutDiscontinuedLogin( bool allowsDiscontinuedLogin, string authType, bool hasDiscontinuedLoginClaim) { var context = BuildAuthorizationContext( BuildClaimsIdentity( authType, authenticated: true, hasDiscontinuedLoginClaim: hasDiscontinuedLoginClaim).Object).Object; var attribute = new UIAuthorizeAttribute(allowsDiscontinuedLogin); // Act attribute.OnAuthorization(context); // Assert Assert.Null(context.Result); }
public void RedirectsToHomepageForAuthenticatedUserWithDiscontinuedLogin(string authType) { var context = BuildAuthorizationContext( BuildClaimsIdentity( AuthenticationTypes.LocalUser, authenticated: true, hasDiscontinuedLoginClaim: true).Object).Object; var attribute = new UIAuthorizeAttribute(); // Act attribute.OnAuthorization(context); // Assert var redirectResult = context.Result as RedirectToRouteResult; Assert.NotNull(redirectResult); Assert.True(redirectResult.RouteValues.Contains(new KeyValuePair <string, object>("controller", "Pages"))); Assert.True(redirectResult.RouteValues.Contains(new KeyValuePair <string, object>("action", "Home"))); }