Beispiel #1
0
            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")));
            }