public void Should_throw_when_action_is_null()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => advancedConfiguration.Conventions(null));
        }
        public void Should_ignore_missing_configurations()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act
            advancedConfiguration.IgnoreMissingConfiguration();

            // Assert
            Assert.That(model.ShouldIgnoreMissingConfiguration, Is.True);
        }
        public void Should_have_default_policy_cache_lifecycle_set_to_PerHttpRequest()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act
            advancedConfiguration.SetDefaultResultsCacheLifecycle(Cache.PerHttpRequest);

            // Assert
            Assert.That(model.DefaultResultsCacheLifecycle, Is.EqualTo(Cache.PerHttpRequest));
        }
        public void Should_ignore_missing_configurations()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act
            advancedConfiguration.IgnoreMissingConfiguration();

            // Assert
            Assert.That(model.ShouldIgnoreMissingConfiguration, Is.True);
        }
        public void Should_add_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);
            var expectedConvention    = new MockConvention();

            // Act
            advancedConfiguration.Conventions(conventions => conventions.Add(expectedConvention));

            // Assert
            Assert.That(model.Conventions.Contains(expectedConvention), Is.True);
        }
Ejemplo n.º 6
0
        internal AdvancedConfiguration(SecurityRuntime runtime)
        {
            _runtime = runtime ?? throw new ArgumentNullException(nameof(runtime));

            if (!_runtime.Conventions.Any())
            {
                Conventions(conventions =>
                {
                    conventions.Add(new FindByPolicyNameConvention());
                    conventions.Add(new FindDefaultPolicyViolationHandlerByNameConvention());
                });
            }
        }
        internal AdvancedConfiguration(SecurityRuntime runtime)
        {
            if (runtime == null) throw new ArgumentNullException("runtime");
            _runtime = runtime;

            if (!_runtime.Conventions.Any())
            {
                Conventions(conventions =>
                {
                    conventions.Add(new FindByPolicyNameConvention());
                    conventions.Add(new FindDefaultPolicyViolationHandlerByNameConvention());
                });
            }
        }
        public void Should_remove_matching_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.True);

            // Act
            advancedConfiguration.Conventions(conventions => conventions.RemoveAll(c => c is FindByPolicyNameConvention));

            // Assert
            Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.False);
        }
        public void Should_have_conventions_for_default_PolicyViolationHandler_applied()
        {
            // Arrange
            var securityModel = new SecurityRuntime();

            // Act
            new AdvancedConfiguration(securityModel);

            // Assert
            var conventions = securityModel.Conventions.OfType<IPolicyViolationHandlerConvention>().ToList();
            Assert.That(conventions.Count(), Is.EqualTo(2));
            Assert.That(conventions.ElementAtOrDefault(0), Is.TypeOf<FindByPolicyNameConvention>());
            Assert.That(conventions.ElementAtOrDefault(1), Is.TypeOf<FindDefaultPolicyViolationHandlerByNameConvention>());
        }
        public void Should_have_conventions_for_default_PolicyViolationHandler_applied()
        {
            // Arrange
            var securityModel = new SecurityRuntime();

            // Act
            new AdvancedConfiguration(securityModel);

            // Assert
            var conventions = securityModel.Conventions.OfType <IPolicyViolationHandlerConvention>().ToList();

            Assert.That(conventions.Count(), Is.EqualTo(2));
            Assert.That(conventions.ElementAtOrDefault(0), Is.TypeOf <FindByPolicyNameConvention>());
            Assert.That(conventions.ElementAtOrDefault(1), Is.TypeOf <FindDefaultPolicyViolationHandlerByNameConvention>());
        }
        public void Should_remove_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);
            var convention            = new MockConvention();

            advancedConfiguration.Conventions(conventions => conventions.Add(convention));
            Assert.That(model.Conventions.Contains(convention), Is.True);

            // Act
            advancedConfiguration.Conventions(conventions => conventions.Remove(convention));

            // Assert
            Assert.That(model.Conventions.Contains(convention), Is.False);
        }
        internal static WindowsImpersonationContext SafeImpersonate(SafeTokenHandle userToken, WindowsIdentity wi, ref StackCrawlMark stackMark)
        {
            bool            flag;
            int             hr = 0;
            SafeTokenHandle safeTokenHandle = GetCurrentToken(TokenAccessLevels.MaximumAllowed, false, out flag, out hr);

            if ((safeTokenHandle == null) || safeTokenHandle.IsInvalid)
            {
                throw new SecurityException(Win32Native.GetMessage(hr));
            }
            FrameSecurityDescriptor securityObjectForFrame = SecurityRuntime.GetSecurityObjectForFrame(ref stackMark, true);

            if (securityObjectForFrame == null)
            {
                throw new SecurityException(Environment.GetResourceString("ExecutionEngine_MissingSecurityDescriptor"));
            }
            WindowsImpersonationContext context = new WindowsImpersonationContext(safeTokenHandle, GetCurrentThreadWI(), flag, securityObjectForFrame);

            if (userToken.IsInvalid)
            {
                hr = System.Security.Principal.Win32.RevertToSelf();
                if (hr < 0)
                {
                    Environment.FailFast(Win32Native.GetMessage(hr));
                }
                UpdateThreadWI(wi);
                securityObjectForFrame.SetTokenHandles(safeTokenHandle, (wi == null) ? null : wi.TokenHandle);
                return(context);
            }
            hr = System.Security.Principal.Win32.RevertToSelf();
            if (hr < 0)
            {
                Environment.FailFast(Win32Native.GetMessage(hr));
            }
            if (System.Security.Principal.Win32.ImpersonateLoggedOnUser(userToken) < 0)
            {
                context.Undo();
                throw new SecurityException(Environment.GetResourceString("Argument_ImpersonateUser"));
            }
            UpdateThreadWI(wi);
            securityObjectForFrame.SetTokenHandles(safeTokenHandle, (wi == null) ? null : wi.TokenHandle);
            return(context);
        }
        public void Should_throw_when_action_is_null()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act & Assert
            Assert.Throws<ArgumentNullException>(() => advancedConfiguration.Conventions(null));
        }
        public void Should_have_default_policy_cache_lifecycle_set_to_PerHttpSession()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);

            // Act
            advancedConfiguration.SetDefaultResultsCacheLifecycle(Cache.PerHttpSession);

            // Assert
            Assert.That(model.DefaultResultsCacheLifecycle, Is.EqualTo(Cache.PerHttpSession));
        }
 public void SetUp()
 {
     _runtime = new SecurityRuntime();
     _advancedConfiguration = new AdvancedConfiguration(_runtime);
 }
        public void Should_remove_matching_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);
            Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.True);

            // Act
            advancedConfiguration.Conventions(conventions => conventions.RemoveAll(c => c is FindByPolicyNameConvention));

            // Assert
            Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.False);
        }
Ejemplo n.º 17
0
 public void SetUp()
 {
     Runtime = new SecurityRuntime();
 }
        public void Should_add_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);
            var expectedConvention = new MockConvention();

            // Act
            advancedConfiguration.Conventions(conventions => conventions.Add(expectedConvention));

            // Assert
            Assert.That(model.Conventions.Contains(expectedConvention), Is.True);
        }
 public void SetUp()
 {
     _runtime = new SecurityRuntime();
     _advancedConfiguration = new AdvancedConfiguration(_runtime);
 }
Ejemplo n.º 20
0
 public void SetUp()
 {
     _runtime = new SecurityRuntime();
 }
        public void Should_remove_convention()
        {
            // Arrange
            var model = new SecurityRuntime();
            var advancedConfiguration = new AdvancedConfiguration(model);
            var convention = new MockConvention();
            advancedConfiguration.Conventions(conventions => conventions.Add(convention));
            Assert.That(model.Conventions.Contains(convention), Is.True);

            // Act
            advancedConfiguration.Conventions(conventions => conventions.Remove(convention));

            // Assert
            Assert.That(model.Conventions.Contains(convention), Is.False);
        }